Commit Graph

12092 Commits

Author SHA1 Message Date
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
Ruipeng Li
48de53e675
fix bigint (#684)
Fix BigInt issue #681
2022-07-20 09:28:22 -07:00
Fredrik Ekre
e8990caf7a
Fix a typo in documentation for hybrid solver. (#685) 2022-07-20 06:52:01 -07:00
Ruipeng Li
275d04d987
Cmake cuda update (#675)
This PR contains CMake changes for CUDA.

Co-authored-by: pengwang <penwang@nvidia.com>
Co-authored-by: Sarah Virginia Osborn <osborn9@llnl.gov>
2022-07-19 22:04:42 -07:00
Ruipeng Li
22d35a4d09
Backward compatible ROCm header update. (#680)
Backward compatible update to rocm header include path.

Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
2022-07-15 23:28:00 -07:00
Ruipeng Li
5eb84ec1db
Fix GPU memory leak (#677)
This PR fixes a memory leak on GPUs.
2022-07-15 11:20:41 -07:00
Ruipeng Li
ad50e4e123
config/update.sh (#671)
Minor changes to `configure`.
2022-07-08 16:33:48 -07:00
Wayne Mitchell
6c4803b90d
Sycl pmis (#664)
Port PMIS coarsening to SYCL
2022-07-08 14:00:23 -07:00
Ruipeng Li
bd514cf998
Cusolver (#653)
This PR adds the option of using cuSolver.

Co-authored-by: Paul Mullowney <Paul.Mullowney@nrel.gov>
2022-07-06 09:37:32 -07:00
Ruipeng Li
14ee602fbf
Regression (#668)
This PR updates regression test scripts and benchmark performance results.
2022-07-05 17:10:43 -07:00