Commit Graph

12101 Commits

Author SHA1 Message Date
Sarah Osborn
182db6cf0e
Update CMake version in install directions (#793) 2022-12-14 13:33:03 -08:00
Victor A. Paludetto Magri
c8f1aba2d6
Add hypre_IntArrayCount (#776)
This PR adds the function hypre_IntArrayCount for counting the number of occurrences of a value in a hypre_IntArray. Also, it moves device methods to a new file int_array_device.c.

Co-authored-by: Wayne Mitchell <mitchell82@llnl.gov>
2022-12-14 12:21:55 -08:00
Victor A. Paludetto Magri
1cc7e81e21
Fix strict prototypes (#774)
This PR cleans the code for the warning Wstrict-prototypes. This flag was also added to the debug build of machine-tux.

Co-authored-by: Pierre Jolivet <pierre@joliv.et>
2022-12-14 11:13:20 -08:00
Victor A. Paludetto Magri
69f74995e0
Add new search paths for the NVIDIA math libs (#788)
This PR adds two new search paths for the NVIDIA math libraries (cuSPARSE, cuBLAS, cuSOLVER). This fixes build issues on Polaris and Perlmutter.

* Add two new search paths for the NVIDIA math libs to configure
* Turn off CUDA math libs when CUDA is disabled
2022-12-13 17:56:56 -05:00
Rui Peng Li
322b9d10cc
NekRS (#702)
This PR adds the optimizations in IJ solvers that were done for NekRS.
2022-12-09 08:46:52 -08:00
Victor A. Paludetto Magri
8f51e49402
Bug fixes involving mixedint option and CUDA build (#783)
This PR fixes a few variable types inconsistencies arisen from the mixedint build. Additionally, it fixes the CUDA-11.1.1 build.

* Fix cuSPARSE version tag for using generic SpMM and new SpMV algorithms
* Bug fixes on hypre_ILU: S_row_starts computation and m -> big_m
* Bug fix: HYPRE_MPI_REAL -> HYPRE_MPI_COMPLEX
* Bug fix: HYPRE_Int -> HYPRE_BigInt
* Bug fix: HYPRE_MPI_INT -> HYPRE_MPI_BIG_INT

Co-authored-by: TotoGaz <49004943+TotoGaz@users.noreply.github.com>
2022-12-07 22:52:15 -05:00
ulrikeyang
af9c59cc34
Bench22 (#786)
* added changes required for the new AMG benchmark, including a new routine that returns wall clock time and some new parameters which generate cumulative numbers of nonzeros for A, coarse grid and prolongation operators in AMG
2022-12-07 14:35:18 -08:00
Wayne Mitchell
9bbdd9799f
SYCL regression testing (#778)
Several bug fixes and small changes for the sycl build. Addition of full regression testing on florentia with consistent and correct results for struct and ij tests with sycl backend.
2022-12-05 16:21:03 -08:00
Rui Peng Li
2826c39ed4
update lassen results (#784)
This PR updates lassen results with small changes.
2022-12-01 14:26:15 -08:00
Victor A. Paludetto Magri
dcbd6d724b
Generalize hypre_ParCSRMatrixGenerateFFFC (#772)
This PR modifies hypre_ParCSRMatrixGenerateFFFC to act as a wrapper between the host and device implementations. Consequently, hypre_ParCSRMatrixGenerateFFFCHost has been added.
2022-11-30 09:13:39 -08:00
Victor A. Paludetto Magri
b93beb9465
Update function comments (#770)
This PR updates a few function comments and serves as a test for pull requests after master has been marked as protected
2022-11-03 23:16:22 -04:00
Rob Falgout
aff83e81fc
Use $(MAKE) instead of (non-portable) make (#763) (#766)
Cf. #755 (comment).

Co-authored-by: prj- <prj-@users.noreply.github.com>
2022-11-03 13:35:43 -07:00
Victor A. Paludetto Magri
a6228149b2
Change CUDAKernel -> GPUKernel (#769)
This PR updates function names starting with hypre_CUDAKernel to hypre_GPUKernel
2022-11-03 13:26:46 -07:00
Rui Peng Li
5467d2941d
ILU Iter trisolve impl (#717)
This PR adds Jacobi iterative solver for ILU smoother/preconditioner implemented on CPU/GPU. 
Co-authored-by: Paul Mullowney <Paul.Mullowney@nrel.gov>
2022-11-02 14:18:56 -07:00
Victor A. Paludetto Magri
c886ad9f71
MGR - HIP support (#719)
This PR adds HIP support to MGR. Additionally:

* Add sanity checks at Setup and Solve functions
* Fix a bug in the computation of P_FF on MGR when using GPUs.
* Enable AMG level profiling with HIP
* Enable ROCTX regions in the IJ driver
2022-11-02 10:54:59 -04:00
Sarah Osborn
843e8c71ef
Add Umpire options to CMake and finish Caliper option (#762)
* Update cmake to include umpire options

* Finish caliper cmake option
2022-10-27 14:50:24 -07:00
Paul Tsuji
247c168ee7
bugfix/tsuji1/dsuperlu to update FEI interface (#748)
* Fixing the FEI interface to SuperLU_Dist. This uses the same structs
as src/parcsr_ls/dsuperlu.c.

* Updates to the CMake build system and other spots to support SuperLU_Dist, SuperLU, and the FEI.
Some Windows build bits.

* Reverting this change, it's just in the comments.

* Changes from Tim Dunn's FEI branch (feature/dunn13/tad220914-fei).
This prevents the solver from exiting out with a failure even though
the initial guess is the solution. There is also a fix to prevent a
floating point exception.

* Removing this #ifndef, as it is no longer necessary for our Windows build.

* Only enable CXX if building the FEI.
2022-10-26 11:08:18 -07:00
Victor A. Paludetto Magri
6ca5cb542f
Dev allocator (#758)
This PR updates hypre_device_allocator to use hypre's abstract memory model. This means that:
    hypre configured with unified memory support: those allocations will be on managed memory.
    hypre configured without unified memory support: those allocations will be on device memory.
2022-10-24 16:18:35 -07:00
Victor A. Paludetto Magri
af5c45027f
Two-stage GS support for multi-component vectors (#738)
This PR enables 2-stage GS relaxation to work properly with multi-component vectors.

* some optimizations to get 2-stage GS working faster
* Update loop unrolling at DiagScaleVector2
* computeY is a template argument now

Co-authored-by: Paul Mullowney <Paul.Mullowney@nrel.gov>
2022-10-24 15:31:37 -07:00
Sarah Osborn
4fd0489978
Minor fix for adding HYPRE_BRANCH_NAME to CMake generated config file (#760) 2022-10-20 14:45:18 -07:00
Victor A. Paludetto Magri
7c5ce339f1
Add HYPRE_BRANCH_NAME (#759)
This PR adds a new variable in `HYPRE_config.h` for naming the hypre's branch currently in use. Internal drivers have been updated to use this variable

* Add HYPRE_BRANCH_NAME to Makefile and cmake builds
* Run config/update.sh
* Ignore files generated by cmake in the cmbuild folder
* Update drivers
* Update regression tests
2022-10-18 16:54:17 -04:00
Rui Peng Li
3c04212d77
Version 2.26.0 (#751)
This PR updates the release number for hypre 2.26.0
2022-10-13 16:08:58 -07:00
Rui Peng Li
94cb9a3137
CHANGELOG for 2.26.0 (#750)
This PR contains the CHANGELOG of  2.26.0 (#749)

Co-authored-by: Victor Magri <paludettomag1@llnl.gov>
2022-10-13 08:40:30 -07:00
Rui Peng Li
403e16a997
fix gpu tests (#753)
This PR fixed GPU regressions.
2022-10-12 19:56:18 -07:00
Rui Peng Li
50de6a4756
fix ParCSRDiagScaleVector (#752)
This PR fixed a check in ParCSRDiagScaleVector.
2022-10-12 14:37:35 -07:00
Victor A. Paludetto Magri
1664a340f8
Krylov solvers support to vector with multiple components (#734)
This PR enables the use of Krylov methods for solving linear systems with multi-component vectors. Regression tests have been added on src/test/TEST_ij/vector.sh. Additionally, hypre_ParCSRDiagScaleVector and hypreDevice_DiagScaleVector have been extended to work with multi-component vectors.

* Small changes to support multi-component Krylov algorithms. This seems to work with GMRES.
* Extend hypre_ParCSRDiagScaleVector to multicomponent vectors
* Extend hypreDevice_DiagScaleVector to multicomponent vectors
* Test Krylov solvers support for multi-component vectors
* Update result for the final residual norm (Tux)
* Add hypreGPUKernel_CSRMatvecShuffleGT8 and update hypreDevice_CSRMatrixMatvec with new kernel dispatching strategy
* Add number of matvecs as a command line option for the IJ driver 
* Add vector.saved.lassen and vector.saved.arcticus files
* Run astyle

Co-authored-by: Paul Mullowney <Paul.Mullowney@nrel.gov>
Co-authored-by: Wayne Mitchell <mitchell82@llnl.gov>
2022-10-11 16:55:30 -07:00
Wayne Mitchell
bf3f6f0f74
Sycl more interp (#737)
Adds additional interpolation routines and IJ matrix functionality to the sycl backend.
2022-10-07 17:29:46 -07:00
Tzanio Kolev
12778359e8
Expose the AMS solver structure to users by including ams.h in _hypre_parcsr_ls.h (#730)
Add ams.h to parcsr_ls/headers and complete the hypre_AMSData accessors
2022-10-07 10:47:58 -07:00
Rui Peng Li
5546cc22d4
Runtime switch and memory tracker (#741)
This PR adds "runtime switch" feature to the solvers in hypre.

Co-authored-by: Victor A. P. Magri <paludettomag1@llnl.gov>
Co-authored-by: Wayne Mitchell <mitchell82@llnl.gov>
2022-10-07 08:39:00 -07:00
Daniel Osei-Kuffuor
ebc634a4e8
Header file bugfix to fix missing symbols. (#745) 2022-10-03 14:21:20 -07:00
Victor A. Paludetto Magri
51cabfbd3a
Add CUSPARSE_NEWSPMM_VERSION (#743)
This PR adds a new macro for driving the choice of cusparse's SpMV and SpMM algorithm types used in hypre.
2022-10-03 13:05:21 -07:00
Ruipeng Li
8dc524e8a1
Fix file version (#731)
This avoid an #include issue with newer C++ compilers.

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
Co-authored-by: Rob Falgout <rfalgout@llnl.gov>
2022-09-14 10:04:35 -07:00
Ruipeng Li
6bd19c272f
new benchmark results on tioga (#727)
Improved benchmark performance on tioga.
2022-09-01 08:25:03 -07:00
Ruipeng Li
f48a5ce0e3
Fixing bugs in hypre_BoomerAMGBuildModMultipassDevice (#724)
Fixing bugs in hypre_BoomerAMGBuildModMultipassDevice
2022-08-29 09:53:06 -07:00
Victor A. Paludetto Magri
9f9f2972f8
[Multivec 5/5]: Parallel SpMV updates (#700)
* Add device functions to perform strided copy
* Extend BoomerAMG with L1-Jac to vectors with multiple components
* Add ParVectorSetLocalSize calls to MGR
* Extend hypre_ParCSRCommPkg with a new member (num_components) that allows communicating several vector components at once.
* Add hypre_ParCSRCommPkgCreateAndFill for allocating and filling a communication package with its data.
* Improve parallel SpMV performance for vectors with multiple components

Co-authored-by: Wayne Mitchell <mitchell82@llnl.gov>
2022-08-24 20:17:18 -04:00
Victor A. Paludetto Magri
9a9d68c5d5
[Multivec 3/5]: Sequential SpMV updates (#694)
This is part of a series of PRs for enabling BoomerAMG to be applied to vectors with multiple components.

* Extend hypre's SpMV on CUDA to multivectors and add calls to cusparse's SpMM.
* Add loop unrolling to hypre's SpMV on CPUs when using multivectors with less than 5 components.
* Add HYPRE_SPMV_FILL variables to hypre's SpMV on GPUs
* Add SYCL changes to SpMV

Co-authored-by: Wayne Mitchell <mitchell82@llnl.gov>
2022-08-23 09:55:09 -04:00
PaulMullowney
5d1def73d9
slight fix to compile with umpire and pinned memory pools (#682)
Co-authored-by: Paul Mullowney <Paul.Mullowney@nrel.gov>
2022-08-18 09:28:52 -07:00
Victor A. Paludetto Magri
2383e6881d
Fix sign-compare warnings (#714)
This PR fixes warnings from [-Wsign-compare] when building hypre with GPU support.
2022-08-17 17:16:34 -04:00
Wayne Mitchell
c551365fe7
Add config options for target backends for sycl instead of hard coding (#701)
Adds config options for specifying a target backend with sycl (both cmake and autoconf)
2022-08-16 17:43:08 -07:00
Wayne Mitchell
6cf11aaa08
Increase available length of filenames for parcsr mat and vec (#562)
Increase char array lengths to accommodate longer filenames, e.g. long absolute paths.
2022-08-16 15:03:13 -07:00
Victor A. Paludetto Magri
ce3ecb0daf
[Multivec 4/5]: BoomerAMG partially supports vector with multiple components (#695)
* Extend BoomerAMG with L1-Jacobi to vector with multiple components.
* Add ParVectorSetLocalSize calls to MGR.
2022-08-11 16:21:31 -04:00
Yadong_Zeng
71cdcc89f7
Include missing header file for the CUDA install (#710)
Co-authored-by: yzeng <yzeng@altair.com>
2022-08-07 15:06:53 -07:00
Wayne Mitchell
98ab3445b7
Sycl build fix (#707)
Move fill functions in device utils back into the general functions block for use with sycl backend.
2022-08-02 18:53:35 -07:00
Ruipeng Li
6425099995
Iterative Triangular Solve APIs (#696)
* This commit adds the public and internal APIs for doing jacobi approximation to iterative triangular solve. At the moment, this code simply sets parameters for the ILU classes.

* Fixing defaults, docs, and comments.

Co-authored-by: Paul Mullowney <Paul.Mullowney@nrel.gov>
2022-08-02 00:19:44 -07:00
Victor A. Paludetto Magri
6845385dd1
Fix sanity checks of hypre_SeqVectorElmdivpy (#704)
This fixes the regression test failure reported in #703.
2022-08-01 10:44:06 -04:00
Fredrik Ekre
fac5ba173f
docs/misc.rst: fix rst syntax for italics (#690)
* docs/README: add tip for viewing local docs using Python webserver.
* docs/misc.rst: fix rst syntax for italics.
2022-07-29 17:10:00 -07:00
Victor A. Paludetto Magri
662e886881
[Multivec 2/5]: Extend multivector support (#693)
* Add new device functions needed by multivectors (`hypreDevice_IntStridedCopy` and `hypreDevice_IVAMXPMY`)
* Extend `hypre_SeqVectorElmdivpy` to work with multivectors.
2022-07-29 15:37:24 -07:00
Victor A. Paludetto Magri
26f334002f
[Multivec 1/5]: Fix code compilation (#692)
This PR fixes a few compilation errors when building hypre with CUDA and without cusparse support
2022-07-28 18:13:34 -04:00
Wayne Mitchell
922a3ce4df
SYCL IJ without unified memory (#676)
Ports some missing routines to allow the IJ driver to run without unified memory with the sycl backend:
IJ vector set/add values and assembly
Routines in par_coarse_parms_device.c
hypre_ParCSRComputeL1Norms()
2022-07-26 12:01:55 -07:00
Victor A. Paludetto Magri
ea3c43a6b0
Set/Get for multivectors (#665)
This PR enables Set/AddTo/GetValues for multivectors through the IJ interface. It also adds regression tests for the new functionalities (TEST_ij/vector) and the HYPRE_IJVectorInnerProd function
2022-07-20 16:46:15 -04:00