Commit Graph

11470 Commits

Author SHA1 Message Date
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
Rob Falgout
7859aeee34
Changed the rhs in several TEST_sstruct/periodic runs (#291)
The previous -rhsone option on tests 80-95 resulted in CG solving the problem exactly in 4 or 5 iterations.  This required the code to be bitwise accurate to pass the tests, which is not reasonable here.  The new cosine-based rhs produces more typical convergence for CG on a Laplacian problem.
2021-03-01 06:13:53 -08:00
Rob Falgout
5122196348 Adding filter to check-license test to ignore runtests-* files 2021-02-18 07:00:23 -08:00
Ruipeng Li
68f510c11b
Test jobs for enable-mixedint (#280)
This PR separates the jobs that break with --enable-mixedint (CGC, ParaSail, Euclid) from regular job scripts, so regression tests can selectively run jobs with --enable-mixedint. The new runtests<-option> files contain a list of tests for the runtest.sh
script that can be run by passing <-option> to the 'run.sh' autotest script. This should enable more flexibility for building regression test suites.

We should also revisit the notes pointed out by @rfalgout at some point.

Co-authored-by: Rob Falgout <rfalgout@llnl.gov>
2021-02-17 20:24:58 -08:00
Rob Falgout
277b357858
Removing 'memory.h' include since it is not ISO standard (#279)
The 'memory.h' header file is not standard ISO C, but it is standard C++. Apparently, some C compilers may accidentally find a C++ version of this file and cause compile problems. See issue #274 .
2021-02-16 08:20:02 -08:00
Ruipeng Li
c4ca3e1050
fixed wrong pointer checking; error handler in debug mode (#275)
This PR fixed a pointer comparison error in GPU matvec y=Ax, (if both pointers of x and y are NULL, should not throw errors).
2021-02-10 23:11:32 -08:00
Rob Falgout
33da39f68a Fixed a typo in the sstruct.in.README file comment 2021-02-10 17:55:01 -08:00
Ruipeng Li
51e5a4c6de
SStruct interface without UVM (#170)
In this PR, we removed the dependency of UVM when building with CUDA for the SStruct solvers, and added a "memory tracker" to help debugging memory leak or misuse.
2021-02-09 11:21:39 -08:00
Ruipeng Li
3438132e1a
GPU examples (#268)
This PR adds GPU-support to hypre's examples. A new `Makefile_gpu` is provided in `src/examples` as an sample makefile, so one can compile the examples with make -f Makefile_gpu if hypre has been built with GPUs.
2021-02-09 11:19:05 -08:00
Rob Falgout
6eb66f8695 Fixed a small mistake in the sludist.sh test 2021-02-09 06:44:39 -08:00
Rob Falgout
be18e595ae
Remove the global partition code from hypre (#273)
This PR removes the global partition code from hypre.
2021-02-08 15:16:29 -08:00