Commit Graph

907 Commits

Author SHA1 Message Date
Tobias Meyer Andersen
2b9c81fe09 use getCudaRecomendedMaxPotentialBlocksize 2024-06-18 11:34:31 +02:00
Markus Blatt
b2c06415f4
Merge pull request #5182 from lisajulia/ilu-op-in-amg
Ghost entries skipped for ILU apply and SpMV operator in all levels of AMG/CPR hierarchy
2024-06-10 13:06:42 +02:00
andrthu
6c62753803 Ghost entries skipped for ilu apply and GL operator in AMG/CPR hierarchy.
This works since the ghost entries are the last entries
2024-06-07 14:40:53 +02:00
Atgeirr Flø Rasmussen
71684bfe2c Ensure 'mid' is always initialized. 2024-06-07 14:27:02 +02:00
Razvan Nane
a1c238df8e last scalars 2024-06-05 15:30:08 +02:00
Razvan Nane
b51f27517b more scalars 2024-06-05 15:27:22 +02:00
Razvan Nane
40c0539bc3 update copyright and scalar 2024-06-05 15:12:12 +02:00
Razvan Nane
dcbd9be46a cleanup and run fix 2024-06-05 15:00:47 +02:00
Tobias Meyer Andersen
9b2f41ad96 Add option to split the matrix into diagonal,
strictly lower and stricly upper part.
Add tests checking that the result matches
the CPU dilu implementation.
2024-06-05 13:35:54 +02:00
Razvan Nane
7a307fafa0 add rocsparseCPR preconditioner 2024-06-04 17:13:13 +02:00
Razvan Nane
74b30e6bba refactor AMG creation as a class 2024-06-04 15:13:54 +02:00
Razvan Nane
3eb87b7b04 refactor rocsparseSolverBackend to allow flexible preconditioner 2024-06-04 12:17:49 +02:00
Razvan Nane
071f009bf3 refactor preconditioner class 2024-06-04 09:47:03 +02:00
Razvan Nane
83b50f08e6 rename opencl files 2024-06-04 06:28:50 +02:00
Razvan Nane
02b76b5309 refactor rocm files 2024-06-04 06:19:28 +02:00
Razvan Nane
988d3821cd fix compile rocsparseWellContrib 2024-05-31 11:55:53 +02:00
Arne Morten Kvarving
c92d80e0e8
Merge pull request #5399 from daavid00/fixMacOS
[FIX]: Build issue if OpenMP is not present
2024-05-31 09:56:39 +02:00
David Landa Marban
a6ed584ae2 [FIX]: Build issue if OpenMP is not present 2024-05-31 09:00:57 +02:00
Arne Morten Kvarving
41885f5911 ISTLSolverBda: use Scalar type from vector 2024-05-24 14:28:10 +02:00
Arne Morten Kvarving
0e537a8ae3 ISTLSolverBda: fix indent 2024-05-24 14:21:26 +02:00
Arne Morten Kvarving
ad1d862426 BdaBridge: template Scalar type 2024-05-24 14:21:26 +02:00
Arne Morten Kvarving
3eed028978 rocsparseSolverBackend: template Scalar type 2024-05-24 14:21:25 +02:00
Arne Morten Kvarving
e620d9d044 rocaluationSolverBackend: template Scalar type 2024-05-24 14:16:36 +02:00
Arne Morten Kvarving
0b22b62205 amgclSolverBackend: template Scalar type 2024-05-24 14:16:36 +02:00
Arne Morten Kvarving
23250b87e3 cusparseSolverBackend: template Scalar type 2024-05-24 14:16:34 +02:00
Arne Morten Kvarving
18f42b51b2 openclSolverBackend: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
d0773ef4f7 BdaSolver: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
e03f2394b9 BdaSolver.hpp: drop indent for namespace 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
7e1f4629ed CPR: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
1f39e6a9a9 BISAI: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
8ea523fa68 BILU0: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
b75ea188ee Preconditioner: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
05a89d1e96 cuWellContributions: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
d2637e53ea rocsparseWellContributions: template Scalar type 2024-05-24 14:09:12 +02:00
Arne Morten Kvarving
ddcfcf681d openclWellContributions: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
ff39bc3b03 WellContribution: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
216f0bea0d MultisegmentWellContribution: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
ba1c6db855 OpenclKernels: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
be59203179 OpenclMatrix: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
5fbd7635cd Matrix: template Scalar type 2024-05-24 14:09:11 +02:00
Arne Morten Kvarving
25374b0e54 BlockMatrix: template Scalar type 2024-05-24 14:09:10 +02:00
Arne Morten Kvarving
b9ee637d78 PreconditionerFactory: use Scalar type from operator 2024-05-24 14:03:28 +02:00
Arne Morten Kvarving
b7bc7b7bf5 Pressure(Bhp)TransferPolicy: template Scalar type 2024-05-24 14:03:28 +02:00
Bård Skaflestad
6f094c558a
Merge pull request #5256 from BigDataAccelerate/overlap_copy_jacmat_gpu
Overlap creation of jacobian matrix with GPU data transfers
2024-05-24 13:11:27 +02:00
Arne Morten Kvarving
60e91a0fb5 amgclSolverBackend: fix for block_size == 1 2024-05-23 13:41:26 +02:00
Arne Morten Kvarving
bf93915101 WellOperators: use field type 2024-05-22 15:39:24 +02:00
Arne Morten Kvarving
0f685d6b44 WellOperators: fix indent
also some formatting fixes, using instead of typedef
2024-05-22 15:30:48 +02:00
Bård Skaflestad
2fe957ca6c
Merge pull request #5368 from multitalentloes/fix_typo_cuda_aware_mpi
fix typo that would cause crash cuda aware openmpi
2024-05-21 11:15:00 +02:00
Tobias Meyer Andersen
9d6dcb00a3 fix typo that would cause crash cuda aware openmpi 2024-05-21 10:20:02 +02:00
Arne Morten Kvarving
ee1c531431 InitStateEquil: remove template parameter from Comm and use Parallel::Communication directly
in the process this quells a deprecation warning for
Dune::CollectiveCommunication usage
2024-05-15 11:20:29 +02:00
Tobias Meyer Andersen
73746b56bc Resolve warning delete-abstract-non-virtual-dtor 2024-05-15 10:00:14 +02:00
Tobias Meyer Andersen
e9d6b326cc Add HIP support for AMD GPUs
This commits adds cmake functionality that can
hipify the cuistl framework to support AMD GPUs.

Some tests have been written as HIP does not mirror
CUDA exactly.

CONVERT_CUDA_TO_HIP is the new CMAKE argument.
CMAKE version is increased to include HIP
as a language (3.21 required).

A macro is added to create a layer of indirection
that will make only cuistl files that have been
changed rehipified.

Some BDA stuff is extracted to make sure CUDA
is not accidentally included.
2024-05-06 15:56:53 +02:00
Tobias Meyer Andersen
d5c088bb20 remove unused headers 2024-05-03 13:45:24 +02:00
Tobias Meyer Andersen
d795561100 remove usage of thrust 2024-05-03 12:52:27 +02:00
Atgeirr Flø Rasmussen
da5f20a0d9
Merge pull request #5145 from multitalentloes/add_gpu_direct
Add GPU Direct
2024-04-29 14:08:25 +02:00
Tobias Meyer Andersen
f4b9e0a3a8 add safe conversion 2024-04-17 14:31:07 +02:00
Tobias Meyer Andersen
29cc7c4925 make variable naming convention more consistent 2024-04-17 13:49:08 +02:00
Tobias Meyer Andersen
2eefedf661 remove error logging in std::cerr 2024-04-17 13:46:49 +02:00
Tobias Meyer Andersen
ccd014cc1a remove some usage of this-> 2024-04-17 13:28:30 +02:00
Tobias Meyer Andersen
a649bef271 update GPU direct support check 2024-04-17 13:28:30 +02:00
Tobias Meyer Andersen
7235f34f0e Add classes handling correct MPI implementation
Make some changes to Georgs original code:
dynamically allocated arrays with std::vectors instead
Implement new class structure handling what
MPI communication implementation to use
create extra scopes to avoid reuse of index variable i

Update related tests:
Update test_cuowneroverlapcopy to account for new
class strucutre
Also remove line that invalidates the MPI tests for multiple processes
2024-04-17 13:28:30 +02:00
Georg Zitzlsberger
eb6f9dc1f9 Prototype implementation of CUDA aware MPI 2024-04-17 13:28:30 +02:00
Arne Morten Kvarving
7eba120662 avoid including MultisegmentWellContribution in WellContributions.hpp 2024-04-17 08:11:47 +02:00
Atgeirr Flø Rasmussen
d3b22323f1
Merge pull request #5284 from multitalentloes/fix_fast_amg_wrapper
Fix fast amg wrapper and generalize RebuildOnUpdatePreconditioner
2024-04-17 08:05:02 +02:00
Tobias Meyer Andersen
296f41ecc0 Make function that infers templates, avoid use of new 2024-04-16 15:39:17 +02:00
Arne Morten Kvarving
7311948b89 openCl preconditioners: make argument orders consistent 2024-04-16 09:39:56 +02:00
Arne Morten Kvarving
34e94256be Preconditioner: replace if nest with switch 2024-04-16 09:39:48 +02:00
Arne Morten Kvarving
cc5f362fdc changed: make PreconditionerType an enum class
this to avoid symbol clashes with the implementations.
while at it rename it to Type as Preconditioner::PreconditionerType is
redundant
2024-04-16 09:06:13 +02:00
Tobias Meyer Andersen
9e7b7b3e40 clang-format PreconditionerWithUpdate.hpp 2024-04-15 16:28:37 +02:00
Tobias Meyer Andersen
9ab15e3ff9 bugfix: make famg reconstruct on update 2024-04-15 16:24:43 +02:00
Tobias Meyer Andersen
0079a17889 re-enable DuneILU for multiprocess 2024-04-15 16:06:37 +02:00
Tobias Meyer Andersen
d97d7ba732 add some documentation 2024-04-15 15:41:58 +02:00
Tobias Meyer Andersen
e275c637f5 Proof Of Concept generic Preconditioner with update 2024-04-15 15:27:37 +02:00
Atgeirr Flø Rasmussen
4f53ea512b
Merge pull request #5028 from multitalentloes/update_prec_factory
Update prec factory
2024-04-15 14:09:58 +02:00
Tobias Meyer Andersen
b45c6cebbe update variable names 2024-04-15 10:36:05 +02:00
Tobias Meyer Andersen
2815a8db86 update variable and template names 2024-04-15 08:32:18 +02:00
Arne Morten Kvarving
0aacefeeec adjust to Parameters::isSet change 2024-04-15 08:12:05 +02:00
Razvan Nane
cc1dfca9e0 add support for single thread copy 2024-04-12 20:17:38 +02:00
Tobias Meyer Andersen
2a7251efc5 change pointers to const references 2024-04-12 15:39:35 +02:00
Tobias Meyer Andersen
8177400602 clang-format PreconditionerFactory_impl 2024-04-11 15:09:09 +02:00
Tobias Meyer Andersen
3d9b3a3013 clang-format PreconditionerWIthUpdate 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
1685f928f7 add RebuildOnUpdate for single process preconditioners. Also refactor wrapPreconditioner to match type of wrapper 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
6cfe647c81 clean up and fix multiprocess RebuildOnUpdate wrapper 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
71d58afc0e Add a valid wrapper through OwningBlockPreconditioner that rebuiilds the preconditioner on updates. Still has excessive matrix copy and misses a wrapper function 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
6b73856fd9 update comments 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
df401e52b8 add jac smoother 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
6c0ee61d6f add ILUn smoother 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
fd6319fe38 add SSOR smoother 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
f6c539f819 add SOR smoother 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
b02e001ae3 add gs preconditioner for amg and kamg 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
030720f855 add dune ILU0 for multiprocess simulations 2024-04-11 15:07:17 +02:00
Tobias Meyer Andersen
8b5ab973e2 Add dune ILU when using only one process 2024-04-11 15:07:17 +02:00
Arne Morten Kvarving
0161d69660 adjust to removal of EWOMS_GET_PARAM 2024-04-05 14:02:28 +02:00
Arne Morten Kvarving
6fba1a95c9 adjust to removal of EWOMS_REGISTER_PARAM 2024-04-05 12:24:48 +02:00
Arne Morten Kvarving
fdab87d336
Merge pull request #5255 from BigDataAccelerate/fix_dep_rocm_ocl
Bug fix: remove dependencies for rocm & cuda on opencl to run block Jacobi ILU
2024-04-05 12:02:30 +02:00
Arne Morten Kvarving
46c3402eba adjust to EWOMS_PARAM_IS_SET macro removal 2024-04-03 19:54:45 +02:00
Razvan Nane
b0157def17 enable multithreaded copy only when openmp found 2024-04-03 15:29:32 +02:00
Razvan Nane
411a3978b6 OPT: overlap create jacMat with copy to GPU 2024-03-15 11:25:38 +01:00
Razvan Nane
0fcad4b0fc Bug fix: remove dep rocm & cuda on opencl for blockJacobi ILU 2024-03-13 16:47:55 +01:00
Markus Blatt
0c87b3386a
Merge pull request #5159 from akva2/quell_rocsparse_warnings
Quell rocsparse warnings
2024-03-08 16:44:40 +01:00