Commit Graph

11544 Commits

Author SHA1 Message Date
Ruipeng Li
a1b4dc0717
Multipass gpu (#490)
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>
2021-09-30 11:58:52 -07:00
Wayne Mitchell
d933faa538
Add to protos and rerun headers (#493)
Some function declarations had been removed from the protos
file in struct_ls and headers needed to be rerun in that directory.
2021-09-30 09:48:36 -07:00
Wayne Mitchell
e12e942fcb
Fix memory leak for dof func (#491)
Make sure the coarse_dof_func is destroyed appropriately during AMG setup.
2021-09-29 08:30:39 -07:00
Rob Falgout
22b1b8a513
Added more filtering to check-license.sh autotest script (#486) 2021-09-24 12:55:30 -07:00
Rob Falgout
04fac1cbbb
Restored versioncheck tests and fixed to work with no '.git' directory (#485) 2021-09-24 10:32:19 -07:00
Wayne Mitchell
5a2ccd9898
Fix typo in code to destroy old AMG data during setup (#484)
This is a small fix for a typo in the code for destroying the old DofFunc data 
when calling a new AMG setup without calling destroy.
2021-09-23 17:30:19 -07:00
Ruipeng Li
bed421584f
fixed configure cuda streams (#482)
This PR fixed a bug in configure for cuda streams
2021-09-23 08:41:50 -07:00
Rob Falgout
1c39d56a5c Removing versioncheck tests until a fix can be developed 2021-09-21 06:31:59 -07:00
Rob Falgout
3207e12fe9 Fixed regression tests for HYPRE_DEVELOP variables 2021-09-20 20:26:42 -07:00
Rob Falgout
408f361bd0
Add HYPRE_DEVELOP variables (#472)
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.
2021-09-20 20:05:58 -07:00
Ruipeng Li
c9b1679970
hypre MPI interface without MPI and with longdouble (#465)
This PR will fix #439 where hypre was configured with --enable-longdouble --without-MPI.
2021-09-20 10:43:27 -07:00
Ruipeng Li
5971f0b979
Fix shared-libraries build for HIP (#478)
This PR by @pbauman #477 fixes shared library build with HIP.
Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-09-17 09:07:43 -07:00
Wayne Mitchell
001d4fe2c7
Add hypre_IntArray (#434)
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.
2021-09-14 14:55:47 -07:00
Wayne Mitchell
f3cb1c170d
Fix for hip compilation (#476)
This is a small fix for a typo that was preventing compilation with hip.
2021-09-14 11:25:43 -07:00
Ruipeng Li
eaff5505ed
hypre's GPU SpGemm (#433)
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>
2021-09-09 08:34:39 -07:00
Ruipeng Li
298a5bf8d0
Hypre petsc (#461)
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>
2021-09-08 16:11:00 -07:00
Ruipeng Li
dd9f1ea31c
Dcsrmv analysis (#458)
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>
2021-09-08 13:59:17 -07:00
Ruipeng Li
16f9f3835c
Fixed a compile issue (#469)
Fixed issues #468 and mfem/mfem#2499
2021-09-02 08:47:26 -07:00
Wayne Mitchell
e53b5a0270
Add rocsparse triangular solve (#462)
Adds a rocsparse implementation for the upper/lower triangular solve required 
for Gauss-Seidel relaxation when using hip and rocsparse on AMD GPUs.
2021-08-30 13:33:49 -07:00
Victor A. Paludetto Magri
f9c1459c31
Fix issue with reduction(max) in MSVC (#463)
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
2021-08-27 10:38:26 -07:00
Rob Falgout
224bab21af Updating release number to 2.22.1 2021-08-19 12:10:18 -07:00
Ruipeng Li
6631deb91a
Update CHANGELOG 2021-08-18 20:57:36 -07:00
Rob Falgout
3a0c686a24 Updating CHANGELOG for new release 2.22.1 2021-08-18 17:44:09 -07:00
Ruipeng Li
ae8bbf619c
bug fix (#456)
Bug fix for HIP thrust macro.
Co-authored-by: Ruipeng Li <coe0141@redwood.cm.cluster>
2021-08-16 16:17:03 -07:00
Wayne Mitchell
c8ee841552
Updated air.saved.lassen (#454)
Fix discrepancies in air.saved.lassen
2021-08-11 15:21:43 -07:00
Ruipeng Li
40dc7ce550
fix cub allocator; unify all allocators (#447)
This PR fixes CUB allocator with UVM and also unifies the CUB and UMPIRE allocators.
2021-08-11 13:01:51 -07:00
Rob Falgout
6f0bdbbb11
Changed default timer to MPI_Wtime() when using MPI (#453)
The timers in hypre date back a really long time and did not originally use MPI_Wtime(). This (finally) changes the default to be MPI_Wtime() whenever MPI is also being used.
2021-08-11 12:35:19 -07:00
Ruipeng Li
e1c325f521
ray saved (#452)
This PR updates the saved results of regression tests on ray.
2021-08-10 22:28:08 -07:00
Ruipeng Li
3f86950f0d
Merge pull request #450 from hypre-space/RL_FIX
bigint fix
2021-08-10 15:26:47 -07:00
Wayne Mitchell
63d4e08e96
Air fixes (#449)
* Fix type error causing valgrind to complain
* Fix bigint errors in ExtractSubmatrixFC
2021-08-10 15:11:51 -07:00
Wayne Bradford Mitchell
7fa3ded6ed Additional bigint fixes 2021-08-10 14:43:00 -07:00
Ruipeng Li
a639e82f8a one more 2021-08-10 13:19:46 -07:00
Ruipeng Li
e262a9dde1 bigint fix 2021-08-10 13:12:40 -07:00
Ruipeng Li
efec0bec11
minor fix (#443)
Minor fix of `gDim, bDim`.

Co-authored-by: Ruipeng Li <li50@euler.llnl.gov>
2021-08-09 08:49:53 -07:00
Wayne Mitchell
2e5b573b2b
Fix compile warnings (#444)
This fixes a couple of compiler warnings introduced in the last merge into master.
2021-08-09 08:04:09 -07:00
Wayne Mitchell
59fcd47e6d
Air gpu (#425)
This PR ports the Neumann version of AIR to the GPU. New features include:
   1. Construction of Neumann AIR restriction operator R on the GPU
   2. Construction of one-point interpolation on the GPU
   3. Construction of an absolute value version of the strength of connection matrix on the GPU
   4. CF relaxation for Jacobi (relax7) and L1 Jacobi (relax18) on the GPU - note that this does redundant computation since a full matvec is called when only relaxing either C- or F-points
   5. Regression tests for AIR
   6. Filtering for ParCSR matrices based on tol*row_norm for 1-, 2-, and infinity-norm on the GPU
2021-08-06 16:39:42 -07:00
Ruipeng Li
92ec19a399
runtest.sh fix (#442)
This PR fixes `./runtest.sh -mpi`
2021-08-06 11:51:38 -07:00
Luke
4346579e03
Fix some typos in .jobs and memory issues (#406)
This PR addresses #404. Includes the typo fixes, and changes to .saved due to inclusion of -ns 2. Also, fixed the memory issues after fixing the .jobs

Co-authored-by: Ruipeng Li <li50@llnl.gov>
Co-authored-by: li50@llnl.gov <liruipengblue@gmail.com>
2021-08-05 16:56:23 -07:00
Luke
cb0c70b163
Fix potentially inconsistent eig estimates (#390) (#410)
This PR reimplements hypre_ParCSRMaxEigEstimate using Gershgorin discs, which ensures that max_eig and min_eig are both allreduced across all ranks so that the return value of the function is the same for all ranks.

Co-authored-by: Ruipeng Li <li50@llnl.gov>
Co-authored-by: li50@llnl.gov <liruipengblue@gmail.com>
2021-08-05 14:03:04 -07:00
Ruipeng Li
b61461c909
Fix mingw (#441)
This PR (#440) fixes portability issue of ffs on MinGW.
Co-authored-by: Pierre Jolivet <pierre@joliv.et>
Co-authored-by: Ruipeng Li <li50@euler.llnl.gov>
2021-08-05 09:58:26 -07:00
Ruipeng Li
9117fc20f2
fixed nan (#436)
This PR fixes nan issues in corner cases in hypre_BoomerAMGInterpTruncationDevice.
2021-08-03 09:27:54 -07:00
Victor A. Paludetto Magri
ffe4f7384b
Update IJ interface with changes in recmat-merge (#392)
This PR improves the IJ interface with new functions, performs code reorganization, and simplifies coding by removing ownership info related to the partitioning data members from ParCSRMatrix and ParVector objects. A more comprehensive list of changes is given below:

* Add HYPRE_IJMatrixAdd, HYPRE_IJMatrixNorm and HYPRE_IJMatrixTranspose functions
* Add ParCSRMatrixInfNorm and ParCSRMatrixReorder functions
* Add transpose, add and norm functions to IJMatrix
* Add more caliper annotation to BoomerAMG and ParCSR functions
* Fix typo in assumed partition function and add caliper annotation
* The output matrix from ParTMatmul owns row/col starts.
* Build communication package for A at ParTMatmul if it does not exist.
* Move hypre_Log2 to utilities
* Add HYPRE_ANNOTATE_REGION_[BEGIN,END] to caliper annotation
* Phase out [row,col]_starts ownership info in ParCSR matrices
* Remove partitioning ownership info from vector
* Move partitioning variables to stack memory
2021-07-28 15:42:23 -07:00
Ruipeng Li
a522bfdb91
Rocrand (#429)
This PR (by @pbauman #428) adds support for PRNG on AMD GPUs via rocRAND. 

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-07-23 09:22:00 -07:00
Luke
5cf30f95b9
GPU Support for Chebyshev Relaxation (#388)
This pull requests adds explicit GPU support for Chebyshev polynomial preconditioning for smoothers.
2021-07-23 09:21:15 -07:00
Christoph Junghans
ec6670a886
cmake: fix config for CXX-only consumers (#423)
Some consumers only have CXX enabled hence find_dependency(MPI) won't define a MPI::MPI_C target.
Explicitly enabling the C language will fix that.
2021-07-12 15:23:21 -05:00
Dan Ibanez
89521dcbf8
Check MSVC version before adding flags (#419)
This was originally started as an effort to
fix the Windows+CUDA build, in which case
these special flags need to be added differently
when CUDA is used.
However, they were there to workaround issues in
earlier MSVC versions that today's version doesn't
have, so the changes here actually just check
whether the MSVC being used is old enough to need
these workarounds.
Since using CUDA and MSVC through CMake is relatively
new, there shouldn't be a need to support these
workarounds with CUDA
2021-06-29 13:41:47 -05:00
Ruipeng Li
e7e2ab36a6
fixed ads (#418)
This PR fixes an issue with ADS on GPUs
2021-06-25 13:47:47 -07:00
Ruipeng Li
b7d4ce9d53
fixed a function prototype (#416)
This PR fixed a function prototype compiled with HIP.
Co-authored-by: Ruipeng Li <coe0141@redwood.cm.cluster>
2021-06-24 10:07:58 -07:00
Rob Falgout
09b6b53ca5 Update CHANGELOG and version number for new release 2.22.0 2021-06-21 15:14:46 -07:00
Ruipeng Li
8c9f41a4d0
GPU ams ame ads (#398)
This PR adds GPU support for ams, ame and ads, and the following parcsr operations on GPUs, ParCSRAdd, ParCSRTranspose, l1 hybrid G-S/SSOR.

Co-authored-by: Rob Falgout <rfalgout@llnl.gov>
2021-06-21 14:36:46 -07:00