* 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>
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>
* 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>
* Add new device functions needed by multivectors (`hypreDevice_IntStridedCopy` and `hypreDevice_IVAMXPMY`)
* Extend `hypre_SeqVectorElmdivpy` to work with multivectors.
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()
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
This adds sycl support for interpolation optionsExtInterp, ExtPIInterp,
and ExtPEInterp (which correspond to InterpType 6, 14, 16, 17, 18).
Generation of the strength matrix is also ported to sycl.
Further unification of cuda/hip/sycl kernel functions.
Adds regression tests for the sycl backend on arcticus including both ij and struct tests.
This PR includes optimizations for hypre's SpGEMM and ParSpGEMM kernels
Co-authored-by: Wayne Mitchell <mitchell82@llnl.gov>
Co-authored-by: Paul T. Bauman <ptbauman@gmail.com>
Co-authored-by: Sarah Osborn <30503782+osborn9@users.noreply.github.com>
hypre_ParCSRMatrixPrintIJ works for matrices living on the device w/o the need of UVM support. A explicit copy is to host memory is performed in this function prior to printing the files.