Commit Graph

63 Commits

Author SHA1 Message Date
Tobias Meyer Andersen
d1e5a69476 Add new MP scheme to GPU ILU and DILU 2025-01-10 16:38:14 +01:00
Kjetil Olsen Lye
119282bd6d
Merge pull request #5674 from multitalentloes/add_gpudilu_mixed_precision
Add gpudilu mixed precision
2025-01-07 14:57:17 +01:00
jakobtorben
0290fd0e9f Add support for partial resetup with AMGX 2024-12-18 13:30:02 +01:00
jakobtorben
5dd70eb8bb Add AMGX preconditioner 2024-12-18 13:30:02 +01:00
Arne Morten Kvarving
3b67d6dc54 Small fixes for hypre integration (#1)
* use appropriate hypre init function

* properly handle hypre without device support

* don't add hypre preconditioner to factory if scalar type does not match
2024-12-10 17:08:18 +01:00
jakobtorben
56897e6d11 Guard Hypre preconditioner creation with HAVE_HYPRE macro 2024-12-10 17:08:18 +01:00
jakobtorben
9d47aa605e Add property tree to constructor 2024-11-27 17:09:14 +01:00
jakobtorben
10f7a85532 Add Hypre preconditioner 2024-11-27 17:09:14 +01:00
Tobias Meyer Andersen
1d49eadd15 add mixed precision option to gpudilu class 2024-10-14 16:17:56 +02:00
Kjetil Olsen Lye
9bc7155cf3
Merge pull request #5552 from multitalentloes/add_mixed_precision_ilu0_and_dilu_on_gpu
Add mixed precision ilu0 on gpu
2024-10-10 13:03:14 +02:00
Vegard Kippe
099dabd8a9 Actually update the criterion to use fixed ordering.. 2024-10-04 00:09:04 +02:00
Tobias Meyer Andersen
55c20dbddd Implement mixed precision GPU ILU0 2024-09-30 16:24:49 +02:00
Tobias Meyer Andersen
0bab02f809 update name of opm cuilu0 to match gpuistl 2024-09-13 09:15:19 +02:00
Kjetil Olsen Lye
f97389d1b5
Merge pull request #5554 from multitalentloes/refactor_cuistl
refactor cuistl to gpuistl
2024-08-26 09:55:13 +02:00
Tobias Meyer Andersen
d14fed904a fix typo 2024-08-23 14:42:37 +02:00
Tobias Meyer Andersen
fba1858f42 refactor cuvector 2024-08-22 15:20:20 +02:00
Tobias Meyer Andersen
0c1ea3ee4d refactor cuseqilu0 2024-08-22 15:07:53 +02:00
Tobias Meyer Andersen
158619083e refacor cujac 2024-08-22 14:40:23 +02:00
Tobias Meyer Andersen
d17ee3315b refactor CuDILU 2024-08-22 14:28:33 +02:00
Tobias Meyer Andersen
67bc9e8f34 refactor CuBlockPreconditioner 2024-08-22 13:58:35 +02:00
Tobias Meyer Andersen
3f4ae4ddf4 refactor cuistl namespace 2024-08-22 13:52:50 +02:00
Arne Morten Kvarving
1cc27754d8 FlexibleSolver: optionally instantiate for float
PreconditionerFactory: optionally instantiate for float

these need to go in the same commit due to circular dependencies
2024-08-21 09:34:28 +02:00
Tobias Meyer Andersen
7a30aaa46e Add an OPM implementation of ILU0
improve file structure in cuistl
run clang-format
2024-08-09 15:52:42 +02:00
Tobias Meyer Andersen
3cb8298e3a Pick blocksize automatically for CUDA cards.
Calibrate the best size for AMD cards.
This will be improved in a following PR
2024-06-28 14:36:00 +02:00
Kjetil Olsen Lye
9b414419e7
Merge pull request #5404 from multitalentloes/add_dilu_LU_splitting
Add cudilu lu splitting
2024-06-27 14:30:45 +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
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
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
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
296f41ecc0 Make function that infers templates, avoid use of new 2024-04-16 15:39:17 +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
e275c637f5 Proof Of Concept generic Preconditioner with update 2024-04-15 15:27:37 +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
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
Bård Skaflestad
859db850c0
Merge pull request #5111 from lisajulia/feature/deterministic-indicesSyncer
Construct the matrices in the AMG hierarchy with deterministic indices.
2024-01-29 13:37:54 +01:00
Lisa Julia Nebel
74608147c0 Add comment on trailing return type with decltype that is used for detecting the existence of setUseFixedOrder member function 2024-01-26 14:29:15 +01:00
Tobias Meyer Andersen
4b0dd54f15 Add CUDA implementation of the DILU
preconditioner. Uses graph coloring to exploit
parallelism in upper and triangular solves when
computing a diagonal approximate inverse of a
sparse matrix. Supports blocksizes up to 3.
2024-01-25 14:26:38 +01:00