This PR has three main goals: 1. Enable ILU to work without UVM on device builds. 2. Add the runtime switch option to ILU. Thus, in device builds, one can choose now whether to execute ILU's setup and solve on the device or host. 3. Improve error handling. e.g, when trying to execute on the device ILU types that are not supported yet. A summary of the code changes is given below: * Enable ILU reordering algorithms to work without UVM memory. * Update hypre_ILUSetupILU0Device with new intArray functions * Fix memory location of S_offd + style updates * Simplify hypre_ParILUCusparseILUExtractEBFC * Remove unused function: hypre_ParILUCusparseExtractDiagonalCSR * Refactor hypre_ILUGetInteriorExteriorPerm * Refactor hypre_ILULocalRCM * Refactor hypre_ILUSortOffdColmap * Refactor hypre_ILUGetLocalPerm * Refactor hypre_ILUGetPermddPQ * Fix memory transfer at hypre_ILUGetInteriorExteriorPerm * Add error messages for ILUK and ILUT for device runs * Add error messages for GMRES-ILUK and GMRES-ILUT for device runs * Add execution policy to ILU setup/solve * Bug fixes for -exec_host/-memory_host on device builds * Add ILU reordering option to IJ driver * Refactor hypre_ILUSetupILUKDevice * Refactor hypre_ILULocalRCM * Remove duplicated code * Bug fix on hypre_ILUGetPermddPQPre * Update lassen results in accordance with CPU runs --------- Co-authored-by: Paul Mullowney <Paul.Mullowney@nrel.gov> |
||
|---|---|---|
| AUTOTEST | ||
| src | ||
| .gitignore | ||
| .readthedocs.yml | ||
| CHANGELOG | ||
| COPYRIGHT | ||
| INSTALL.md | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| NOTICE | ||
| README.md | ||
| SUPPORT.md | ||
HYPRE is a library of high performance preconditioners and solvers featuring multigrid methods for the solution of large, sparse linear systems of equations on massively parallel computers.
For documentation, see our readthedocs page.
To install HYPRE, please see either the documentation or the file INSTALL.md.
An overview of the HYPRE release history can be found in the file CHANGELOG.
We appreciate feedback from users. Please submit comments, suggestions, and report issues on our issues page. See also SUPPORT.md.
License
HYPRE is distributed under the terms of both the MIT license and the Apache License (Version 2.0). Users may choose either license, at their option.
All new contributions must be made under both the MIT and Apache-2.0 licenses.
See LICENSE-MIT, LICENSE-APACHE, COPYRIGHT, and NOTICE for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
LLNL-CODE-778117
