Commit Graph

11580 Commits

Author SHA1 Message Date
Ruipeng Li
d380ba1247 amg parameter numbers 2021-05-25 16:40:00 -07:00
Ruipeng Li
c05d97a62d more on GPU AMG 2021-05-25 16:31:47 -07:00
Ruipeng Li
9d1a9d4107 boomerAMG on GPUs 2021-05-25 16:12:29 -07:00
Ruipeng Li
57d1288bda bug fix 2021-05-25 15:47:05 -07:00
Ruipeng Li
dfceea17d6 Merge branch 'master' of github.com:hypre-space/hypre 2021-05-25 15:11:52 -07:00
Ruipeng Li
0bb67902bb GPU build 2021-05-25 15:11:29 -07:00
Rob Falgout
3b65190b24 A few updates to the CHANGELOG 2021-05-25 14:26:24 -07:00
Rob Falgout
0fb7956eac Update version number for new release 2021-05-25 06:15:55 -07:00
Rob Falgout
426b83b647 Updated CHANGELOG for 2.21.0 release 2021-05-25 05:41:42 -07:00
Ruipeng Li
3bc7d267ef
Gpu default (#336)
This PR changes AMG defaults regarding GPUs at various places, adds regression tests on GPUs, simplifies CUDA boxloop implementations. 

Co-authored-by: Sarah Virginia Osborn <osborn9@llnl.gov>
Co-authored-by: PaulMullowney <pmullown@nrel.gov>
Co-authored-by: Daniel Osei-Kuffuor <oseikuffuor1@llnl.gov>
Co-authored-by: Ruipeng Li <li50@euler.llnl.gov>
Co-authored-by: Ruipeng Li <coe0141@redwood.cm.cluster>
2021-05-24 17:16:35 -07:00
Sarah Osborn
8a41a42c8d
Cmake cuda updates (#349)
Add CUDA options to CMake. 
* Add CUDA options to CMake, including adding CUDA_SRCS to each sub-directory's CMake list
* Changes so that HYPRE_config.h from CMake is consistent with configure
* Fix to license commenting style
* Add CUDA + CMake tests for building on lassen
2021-05-19 15:39:57 -05:00
Daniel Osei-Kuffuor
995969c9af
fix reordering option for diagonal of square matrix transpose (#370)
* Remove hard option to reorder transpose operation to place diagonal in first entry for square matrices. Implement this locally as needed.

*Add runtime option to switch to GPU support

Co-authored-by: Ruipeng Li <li50@llnl.gov>
2021-05-19 12:35:27 -07:00
Sarah Osborn
ae362727b9
Change HYPRE_RELEASE_NUMBER to be int in CMake Config.h file (#372) 2021-05-18 12:19:51 -05:00
Rob Falgout
3894857b16
Adding a new HYPRE_RELEASE_NUMBER macro (#366)
- Added a HYPRE_RELEASE_NUMBER macro, which is an integer representation of the release that can be compared numerically against other releases in user build systems
- Added a 'config/version.sh' that should be modified to create new releases
- Changed the 'config/bootstrap' script to 'config/update.sh' and added a version number check
2021-05-17 08:22:20 -07:00
Ruipeng Li
391f4fd6ec
Fix hypre_CSRMatrixAddHost (#369)
Fix problems in #341

Co-authored-by: victorapm <paludettomag1@llnl.gov>
2021-05-15 00:18:01 -07:00
li50@llnl.gov
08b8cdbf7c bug fix 2021-05-13 21:34:58 -07:00
Ruipeng Li
74482aef40
This branch fixes some of the profiling code in nvtx. All Push/Pop ranges never explicitly use PushColor version around device kernels. We allow the general method to determine the correct color. Next, there was a missing PopRange() in par_mod_lr_interp.c. Finally, I changed the profiling names in par_mod_lr_interp.c as they conflicted with names in another file. (#368)
Co-authored-by: Paul Mullowney <pmullown@orthus.nic.uoregon.edu>
2021-05-13 21:01:23 -07:00
Ruipeng Li
c7175a9872
Cuda11.2 (#362)
This PR fixes the problem by the behavior change in thrust::exclusive_scan calls from CUDA 11.2

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-05-13 20:40:24 -07:00
Ruipeng Li
1c979f338f
Fix so this compiles with hip (#365)
Co-authored-by: Paul Mullowney <pmullown@orthus.nic.uoregon.edu>
2021-05-13 19:29:46 -07:00
Victor A. Paludetto Magri
c38527c455
Add OMP support to Mat/Mat add functions (#341)
Add OpenMP support to CSRMatrixAddHost and ParCSRMatrixAdd functions. Minor changes are:
- Changed name ParcsrAdd to ParCSRMatrixAdd
- Add hypre_CSRMatrixAddFirstPass and hypre_CSRMatrixAddSecondPass to reduce code duplication
- Update rownnz support in CSRMatrixAddHost, ParCSRMatrixAdd and hypre_ILUParCSRInverseNSH.
- Refactor SpMV branches
2021-05-13 17:29:42 -07:00
Ruipeng Li
91e82e6994
hybridSetAggInterpType (#358)
This PR adds API to set AggInterpType for hybrid solvers
2021-05-10 13:39:52 -07:00
Rob Falgout
fbaf2b75dd
Fix a corner-case divide-by-zero in PFMG (see github issue #332) (#355)
* Fixed a corner-case divide-by-zero in PFMG (see github issue #332)

- The 'mean' computed in PFMG can be zero, so don't divide by it.
- Reduced the size of the dxyz values to avoid an underflow.
- Added comments to better explain this part of the code.
- Added regression tests to check 3D problems that have all of the coefficients
  zeroed out in one dimension (so they are basically 2D).
2021-05-10 13:30:02 -07:00
Daniel Osei-Kuffuor
c272f6980c
Fix MGR setup on GPU and MGR bugfixes. (#260)
This PR addresses initial changes necessary to perform MGR setup on GPUs. It also fixes a bug in the iterative use of AMG for F-relaxation, adds options to print statistics of the F-relaxation solver (for the V-cycle smoother), and places the diagonal of a transposed square matrix as the first element in the row. This last change required a couple minor changes to the saved files.
2021-05-10 13:19:34 -07:00
Victor A. Paludetto Magri
3f12d47651
Add support for matrices with many zero rows (#300)
The main objective of this PR is to improve the support of matrices with a large number of zero rows in hypre. More specifically:
* Improve IJMatrixAssemble for matrices with a large number of zero rows.
* Add hypre_AuxParCSRMatrixSetRownnz to build array of nonzero rows in the auxiliary matrix. This saves allocation time for building ParCSRMatrices.
* Improve (Par)CSRMatrix transpose, addition and multiplication operations for matrices with a large number of zero rows.

Secondary changes made in this PR are:
* Update SpMV paths in `csr_matvec` in order to make the calculation of A*x more concise.
* Extend OpenMP support to hypre_CSRMatrixSumElts, hypre_CSRMatrixFnorm and hypre_CSRMatrixReorder.
* Clean gcc-9 warnings
* Update saved files and delete unused variable

Co-authored-by: Ruipeng Li <li50@llnl.gov>
2021-04-27 17:14:17 -07:00
Victor A. Paludetto Magri
521ef12ff1
Fix colmap (#328)
When building the colmap array for prolongation operators that contain a high number of nonzero coefficients living in P_offd, see hypre_build_interp_colmap, the code will make P_offd_size * num_cols_P_offd comparisons, and this can be very high depending on the test case. This PR eliminates such code path and uses a hash table to accomplish the same purpose, thus lowering the algorithmic complexity.
2021-04-20 10:28:49 -07:00
Ruipeng Li
c5110654ce
add include in fei makefile (#334)
This PR adds an include directory in FEI_MV.
2021-04-19 17:59:30 -07:00
Ruipeng Li
4718207e94
hypre_strcpy (#340)
This PR tries to fix #315
2021-04-19 17:59:03 -07:00
Ruipeng Li
9a28cc622a
Config without args (#338)
This PR (by @acolinisi #337) fixes hypre's --without-caliper and --without-strict-checking configure options.

Co-authored-by: Alexei Colin <acolin@isi.edu>
2021-04-19 17:58:31 -07:00
Ruipeng Li
25646da905
Mat descr (#331)
This PR (@pbauman #329) addresses #309, which allows each `hypre_csrmatrix` has a GPU matrix descriptor.

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-04-15 19:00:38 -07:00
Ruipeng Li
34b2f43ba8 Merge branch 'master' of github.com:hypre-space/hypre 2021-04-13 18:44:18 -07:00
Ruipeng Li
0d730f3744 Fixed seg-fault problem 2021-04-13 18:43:50 -07:00
ulrikeyang
3f6c0abc48 Merge branch 'master' of https://github.com/hypre-space/hypre 2021-04-13 15:09:57 -07:00
ulrikeyang
e79d05d0bc removed some missed col_offd_S_to_A 2021-04-13 15:06:34 -07:00
Ruipeng Li
d2ef5cf18c Fixed ExtInterpDevice 2021-04-13 15:06:26 -07:00
ulrikeyang
0a0ddd0723
Fix s (#312)
* Rewrote strength matrix generation for nodal > 0, since it was faulty. This also also fixed a bug that occurred when using hopscotch.

* Added new option HYPRE_BoomerAMGSetKeepSameSign, which keeps values in S if they are of the same sign as the diagonal for nodal > 0.
This option does not affect nodal = 0.

* fixed a bug accidentally introduced in standard interpolation

* removed option to set SCommPkgSwitch, which allowed to reduce communication for strength matrix, but was not working properly. This included removing occurrences of col_offd_S_to_A etc

* included capability to deal with systems of PDEs in MM interpolation operators, except for 2s-MM-ext

* updated saved files

* added regression tests and modified elasticity regression tests
2021-04-12 12:20:28 -07:00
Ruipeng Li
25d0498a3e
Roctx (#319)
This PR (by @pbauman #317) adds rocTX support, the ROCm analog to NVTX.

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-04-12 08:36:09 -07:00
Ruipeng Li
b3a4a76a5f
Roc sparse (#316)
This PR (by @pbauman #304) adds the first pass of rocSPARSE support.

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-03-25 20:11:53 -07:00
Ruipeng Li
366b80f89b
2 stage gs (#314)
This PR (by @PaulMullowney #282) includes updates/changes to the 2 stage GS preconditioner.

Co-authored-by: Paul Mullowney <pmullown@nrel.gov>
2021-03-24 15:14:00 -07:00
Ruipeng Li
8002200aa0
Revert "2 stage gs (#308)" (#313)
This reverts commit f7fb2853f2.
2021-03-24 09:37:07 -07:00
Ruipeng Li
f7fb2853f2
2 stage gs (#308)
This PR (by @PaulMullowney #282) includes updates/changes to the 2 stage GS preconditioner. 

Co-authored-by: Paul Mullowney <pmullown@nrel.gov>
2021-03-24 09:36:01 -07:00
Sarah Virginia Osborn
fcd2b2b4bb Add missing utilities source file to CMakeList 2021-03-18 08:38:12 -07:00
Ruipeng Li
ce2a438215
removing device bindings in HYPRE_Init (#296)
This PR removes GPU device binding in HYPRE_Init() which is now moved into test drivers. It also fixes the issue with Umpire when using non-default device (device id \neq 0)
2021-03-17 17:22:17 -07:00
Ruipeng Li
8223465ead
More hip support (#302)
This PR (by @pbauman #301) add more Hip support that was missed in #297.

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-03-12 20:30:18 -08:00
Ruipeng Li
67a0bdeab9
Hip support (#298)
This PR (by @pbauman #297) is a primary step in adding HIP support.

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-03-10 09:17:15 -08:00
Ruipeng Li
4630047ad3
HYPRE_USING_GPU (#295)
This PR (by @pbauman #292 ) takes instances of #if defined(HYPRE_USING_CUDA) || defined(HYPRE_USING_DEVICE_OPENMP) and changes them to #if defined(HYPRE_USING_GPU). 

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-03-05 16:35:03 -08:00
Sarah Virginia Osborn
9d45b1934a Remove unnecessary including of superlu_ddefs in ij test 2021-03-05 09:05:19 -08:00
Ruipeng Li
2e97ffcc9e
bug fix recvbufsize (#294)
This PR fixes a problem of communication between GPUs for structured solvers.
2021-03-04 11:47:42 -08:00
Rob Falgout
c9848a5ed8 Fixed a small mistake in configure/configure.in 2021-03-04 05:51:34 -08:00
Ruipeng Li
b5070c14e2 configure fix for last merged PR 2021-03-04 01:02:38 -08:00
Ruipeng Li
8c00f18a95
Hip build (#293)
This PR adds options to the build system for enabling ROCm and HIP support. 

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2021-03-02 10:02:12 -08:00