This adds matvec, matrix transpose, and vector operations (axpy, inner product, etc.)
with sycl backend (via oneMKL and oneDPL) for running on Intel GPUs. Thus, the AMG
solve phase can now execute entirely on Intel GPUs.
This PR adds Fortran interfaces for hypre_MGR and hypre_ILU. Additionally:
* Add ArrayArray types in `fortran.h`
* Add MGR and ILU options to the fortran interfaces for Krylov solvers
Usually consumers of HYPRE call find_package(HYPRE) and depend on
HYPRE::HYPRE target. But they could also want to use HYPRE via
add_directory (for instance via a git submodule)) or FetchContent,
in which case they have to depend on HYPRE target.
This alias makes this usage more consistent, all users could then
depend on HYPRE::HYPRE. See for instance
https://cmake.org/pipermail/cmake/2018-November/068629.html
if HYPRE_WITH_CALIPER is enabled,
then actually find the CMake package
for caliper and link to it.
Without this, include files are not
found and the caliper library is not
properly linked.
This PR adds automatic indentation using Artistic Style (astyle). The script config/astyle-apply.sh runs the indentation using the configuration file config/astylerc. The script also runs headers in all of the directories that automatically generate internal _hypre_*.h header files. Much of this was borrowed from the MFEM project. A pre-commit git hook was also added.
The 'test/Makefile' had the '..' directory in the include path, which caused the 'HYPRE_config.h' file to be included from two different places (in '..' and in 'install'). In the spack autotest, this caused a conflict.
* Check that 'git describe' works in autoconf build
* Updated versioncheck tests to work when 'git describe' fails
* Updated CMake build to work when 'git describe' fails
* Update autotest filters to ignore error messages from 'git describe'
This PR (modified from #489) adds GPU support for multipass interpolations.
Co-authored-by: ulrikeyang <ulrikey@rzansel61.coral.llnl.gov>
Co-authored-by: Ulrike Yang <yang11@llnl.gov>
Co-authored-by: ulrikeyang <ulrikey@rzansel41.coral.llnl.gov>
Co-authored-by: ulrikeyang <ulrikey@rzansel19.coral.llnl.gov>
Co-authored-by: ulrikeyang <ulrikey@rzansel16.coral.llnl.gov>
Co-authored-by: ulrikeyang <ulrikey@rzansel46.coral.llnl.gov>
Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
Co-authored-by: Ruipeng Li <coe0141@redwood.cm.cluster>
This commit introduces three new variables to the 'HYPRE_config' file through both the autoconf and CMake builds. They are defined only when there is a '.git' directory present, and are otherwise left undefined. These new variables may help users who work directly with the development branch of hypre to keep their code current and backward compatible with previous releases and also individual commits between those releases. The new variables are:
HYPRE_DEVELOP_STRING - a string created from the 'git describe' command that indicates the last release tag, the number of commits beyond that last release, and the corresponding commit hash.
HYPRE_DEVELOP_NUMBER - the number of commits since the last release.
HYPRE_DEVELOP_BRANCH - defined only if the main development branch is being used, and is set to the name of that branch (currently master).
The commit also adds runtime regression tests for the variables in the 'src/test' directory.
This PR adds the hypre_IntArray data structure, which wraps HYPRE_Int* and includes
memory location and size information. The CFMarker and DofFunc arrays in BoomerAMG
are wrapped with hypre_IntArray, and their default location is moved to the device when
using GPU acceleration, avoiding some copies between host and device.
This PR improves the performance of hypre's sparse matrix-matrix on NVIDIA GPUs, and fixes it on AMD GPUs with hip.
Co-authored-by: Ruipeng Li <coe0141@redwood.cm.cluster>
Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
This PR has a number of bug fixes and user requests in the process of integrating GPU-hypre with PETSc.
Co-authored-by: Ruipeng Li <coe0141@redwood.cm.cluster>
This PR (by @pbauman #430) is a hook to be able to call rocsparse_dcsrmv_analysis when using rocSPARSE on AMD GPUs.
Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
MSVC does not support the max operation in OpenMP reduction clauses. This adds a code branch for doing reduction with OpenMP by using a critical region instead when MSVC is used. Fixes issue #460