Commit Graph

63 Commits

Author SHA1 Message Date
Rui Peng Li
40ef37a5da
change struct.o to obj (#790)
This PR gives a temporary fix for a zero-reduction-result issue with OMP offload on Intel GPUs.
2023-12-01 10:05:07 -08:00
Wayne Mitchell
a592bbd12b
Sycl matmat (#716)
Fixes for oneMKL sparse matmat and port of our custom spmv and spgemm routines to sycl. Note that this also involves significant updates to basic handling of kernel launches in sycl due to the need to support multi-dimensional kernels and the use of local shared memory.
2023-02-10 08:21:11 -08: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
Ruipeng Li
e270c561b0
Spgemm (#639)
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>
2022-06-24 10:42:16 -07:00
Victor A. Paludetto Magri
e16167fe46
Fix copyright (#615)
This PR updates Copyright headers from "Copyright 1998-2019 ..." to "Copyright (c) 1998 ..."
2022-04-05 16:19:51 -07:00
Ruipeng Li
ab72d05bd8
Deviceomp (#519)
This PR fixes the build with Kokkos + OMP offload, supports OMP offload without linking CUDA libraries, and supports OMP offload on Intel GPUs.
2022-02-09 06:40:57 -08:00
Quan Bui
734a10fcb7
Mgr setup gpu (#400)
Enable GPU setup for MGR solver.
* Added device specific functionality for interpolation
* Made device and host calls to interpolation consistent
* Edited IJ driver to use GPU capable options for MGR
* Updated saved files for new GPU options
* Updated CMakeLists to support new MGR capabilities

Co-authored-by: Ruipeng Li <li50@llnl.gov>
Co-authored-by: Daniel Osei-Kuffuor <oseikuffuor1@llnl.gov>
2022-02-07 15:54:52 -08:00
Wayne Mitchell
4232108a4d
Add SYCL support (#431)
This sets up basic infrastructure (e.g. memory management, device setup, etc.)
and implements the boxloops and structure solvers in sycl.
2021-11-22 16:54:22 -08:00
Rob Falgout
aadfd86de4
Remove '..' directory dependency in test Makefile (#487)
The 'test/Makefile' had the '..' directory in the include path, which caused the 'HYPRE_config.h' file to be included from two different places (in '..' and in 'install').  In the spack autotest, this caused a conflict.

* Check that 'git describe' works in autoconf build
* Updated versioncheck tests to work when 'git describe' fails
* Updated CMake build to work when 'git describe' fails
* Update autotest filters to ignore error messages from 'git describe'
2021-10-06 09:29:30 -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
Rob Falgout
1d9411c7ab
Fix make clean (#387)
Fixed Makefile clean targets to explicitly remove '*.obj' files.  The previous approach had the potential to delete developer files that were not intended to be removed.
2021-05-27 17:33:19 -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
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
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
Ramesh Pankajakshan
414fa671be
Umpire (#243)
This PR contains the support of UMPIRE pooling allocators for host and GPU memory. Configure hypre with --with-umpire, device and uvm allocations and deallocations are done with umpire, whereas host pool is not enabled by default. This PR also includes some other minor changes:

Adding .gitignore to the repo
Removing all malloc/calloc/realloc/free and regression testing on finding them
No longer compile ij.c with C++ compiler. It goes back to a C code now.
Introducing HYPRE_USING_GPU, which is equivalent to HYPRE_USING_CUDA || HYPRE_USING_DEVICE_OPENMP
Adding a few user-level interfaces: HYPRE_SetMemoryLocation, HYPRE_SetExecutionPolicy, HYPRE_SetGPUMemoryPoolSize and HYPRE_CSRMatrixSetSpGemmUseCusparse

Co-authored-by: li50@llnl.gov <liruipengblue@gmail.com>
Co-authored-by: Rob Falgout <rfalgout@llnl.gov>
Co-authored-by: Ruipeng Li <li50@llnl.gov>
2021-02-03 12:31:25 -08:00
Ruipeng Li
5eb6e965e9 changes per Rob's advice 2020-06-16 18:00:50 -07:00
Ruipeng Li
aad671be81 separation of C/C++ headers, and all the adjustment from it 2020-06-14 19:35:54 -07:00
Ruipeng Li
f491d130f1 Merge branch 'master' of https://github.com/hypre-space/hypre into amg-setup
Conflicts:
	src/IJ_mv/HYPRE_IJ_mv.h
	src/parcsr_ls/HYPRE_parcsr_ls.h
	src/parcsr_ls/_hypre_parcsr_ls.h
	src/parcsr_ls/par_amg.h
	src/parcsr_ls/par_amg_setup.c
	src/parcsr_ls/par_coarsen.c
	src/parcsr_ls/par_cycle.c
	src/parcsr_ls/par_interp.c
	src/parcsr_ls/par_mgr.h
	src/parcsr_ls/par_mgr_setup.c
	src/parcsr_ls/par_mgr_solve.c
	src/parcsr_ls/par_strength.c
	src/parcsr_mv/par_csr_matrix.c
	src/test/ij.c
2020-02-27 14:41:09 -08:00
victor@tux
e22ae7f6a7 Add driver for testing IJMatrix assembly 2020-02-10 15:39:29 -08:00
Daniel Osei-Kuffuor
ab00241102 Merge branch 'master' into mgr-dev 2019-10-17 13:51:43 -07:00
Daniel Osei-Kuffuor
6e96511493 Merge branch 'master' into mgr-dev 2019-07-23 22:52:39 -07:00
Ruipeng Li
8e8eb4f5cb Merge branch 'master' of https://github.com/hypre-space/hypre into amg-setup
Conflicts:
	src/IJ_mv/IJMatrix_parcsr.c
	src/parcsr_ls/par_nongalerkin.c
	src/seq_mv/csr_matrix.c
	src/utilities/_hypre_utilities.h
	src/utilities/binsearch.c
	src/utilities/gpuErrorCheck.c
	src/utilities/gpuErrorCheck.h
	src/utilities/gpuMem.c
	src/utilities/gpuMem.h
	src/utilities/hypre_cuda_reducer.h
	src/utilities/hypre_nvtx.h
	src/utilities/hypre_reducesum.c
	src/utilities/protos.h
2019-07-22 15:36:07 -07:00
Ruipeng Li
59d2809b2d gpu changes 2019-07-12 17:09:44 -07:00
Rob Falgout
568d5c3fe9 Removed fei.cxx from test/Makefile 2019-07-09 07:34:55 -07:00
Rob Falgout
48c9f0b972 Changed all of the headers 2019-07-07 19:26:24 -07:00
Ruipeng Li
aa996ecc8e device PMIS (wip) 2019-04-19 17:27:13 -07:00
Ruipeng Li
9a2a6d0df3 changes regarding parcsr/csr matrix operations on device 2019-02-12 10:49:23 -08:00
Daniel Osei-Kuffuor
bbf55a0777 Merge branch 'master' into mgr-dev 2018-10-24 10:47:06 -07:00
Ruipeng Li
7655130199 the previous commit for iOS broke our CUDA build. try to fix 2018-09-17 10:42:02 -07:00
Geoffrey Malcolm Oxberry
c5db8367db build system: patch to build macOS shared libs 2018-09-12 17:27:08 -07:00
Quan Bui
142dd59125 This update contains the following changes:
- New interface for setting C-F splitting for
matrices with block structure, i.e., the same variables
are ordered contiguously (s_1,s_2,...,s_n,p_1,p_2,...,p_n,...)
- Allow different methods for F-relaxation at different levels.
- Added a test file for MGR to test flow matrices coming from
geocentric.
2018-08-22 10:22:39 -07:00
Ulrike Yang
629933a7a5 restoring old configure files etc 2017-12-13 15:22:07 -08:00
Ulrike Yang
a94a51088d edited configure files 2017-12-13 11:47:45 -08:00
Ulrike Yang
a052538f78 fixed a bug 2017-12-13 08:08:38 -08:00
Ulrike Yang
ffd54476a1 included SuperLU_Dist as a coarse grid solve 2017-12-12 08:12:02 -08:00
Rob Falgout
5042edff41 Changed += to = in two places in test/Makefile 2017-05-02 09:17:54 -07:00
Lu Wang
c28f67467b change the Makefile to a general way 2017-05-01 13:53:16 -07:00
Rob Falgout
fb6345fbc7 Removing PHONY from the makefiles 2017-05-01 11:15:28 -07:00
Lu Wang
27e3a41bd7 reorganize the configure files and fix some bugs 2017-04-29 17:26:56 -07:00
Lu Wang
21d3f18183 merge gpu-dev branch 2017-04-24 14:18:47 -07:00
Ramesh Pankajakshan
632c16ef81 Added option GPU memory high water mark option(off by default). Changes to allow usie of managed memory without any GPU calls. 2017-04-12 12:28:00 -07:00
Rob Falgout
a81828f257 Put GPU header files into _hypre_utilities.h and made other cosmetic changes
This has not been tested with nvcc.  Also, some of the routines in gpukernels.cu
are needed in utilities, so maybe this file needs to be split or relocated to
utilities.  The utilities files should not include from other directories in
hypre and relative includes (i.e., '../directory') are to be avoided.
2017-04-05 18:30:46 -07:00
Rob Falgout
1c62530f1d Changed _hypre_utilities.h to auto generate and changed some nvcc configure stuff
The nvcc changes will need to change again once the other GPU work is merged.
The new 'Makefile.nvcc' and 'Makefile.empty' were used for portability, since
'if/else' is not standard in make.  The only other time we have excluded files
from being compiled in hypre, we excluded entire directories, but the mechanism
was similar.  This may need to be tweaked a bit.

The _hypre_utilities.h file is now generated with the 'headers' script and
should not be modified directly.
2017-04-05 16:43:23 -07:00
Ramesh Pankajakshan
e7217e11ba Merge branch 'master' into cuda-um-dev, to prepare for the release 2017-03-31 10:13:24 -07:00
Ramesh Pankajakshan
b98333e532 Started on support for BIGINT. NVCC and NVCCFLAGS hardwired for Minsky node in Makefile.config.in 2017-03-22 10:04:36 -07:00
Ramesh Pankajakshan
52dcd3d2cd Change in par_cycle.c to allow GPU calls with OMP. 2017-03-20 13:40:27 -07:00
Ramesh Pankajakshan
b489c0ef8a Version that passed all the tests in TEST_ij,TEST_ams and TEST_sstruct 2017-03-14 16:36:45 -07:00
Ramesh Pankajakshan
3014aea7f2 Removed C code. Fixed bug in ReAlloc for size 0 case. Code hangs/slow for Maxwell case 3 2017-03-13 14:26:21 -07:00
Ramesh Pankajakshan
1ef0b8091b Added prefetching to CSRMatrix and Vector. Added variable to track location of CSRMatrix.
CSRMatrix and Vector structs are now in host memory only
2017-03-06 14:26:40 -08:00
Rob Falgout
cc7d1100e7 Minor change to test/Makefile 2017-02-21 07:18:54 -08:00