Skip to content

GPU Simulation POC#7018

Draft
multitalentloes wants to merge 12 commits into
OPM:masterfrom
multitalentloes:full_gpu_sim_v1
Draft

GPU Simulation POC#7018
multitalentloes wants to merge 12 commits into
OPM:masterfrom
multitalentloes:full_gpu_sim_v1

Conversation

@multitalentloes
Copy link
Copy Markdown
Member

New PR including work on GPU property computation that takes over for #6612.

This PR currently contains the code needed to run properties and matrix assembly for SPE11 cases (Gas+Water+Thermal) on the GPU, the two main components of a basic non-linear solver besides the linear solver which is already implemented.

My plan is to extract parts of the diff gradually in smaller PRs to get it merged.

Marked as irrelevant for the manual as this should be further improved upon and validated to be robust, as well as supporting a broader set of cases first.

@multitalentloes multitalentloes added the manual:irrelevant This PR is a minor fix and should not appear in the manual label Apr 29, 2026
This was referenced Apr 29, 2026
@multitalentloes multitalentloes force-pushed the full_gpu_sim_v1 branch 2 times, most recently from 7a1a612 to 249dca8 Compare May 6, 2026 08:33
kjetilly and others added 7 commits May 28, 2026 09:31
move files

remove unused code

support nv and amd gpus simultaneously
also remove some dead comments

rename gpu version of fvbaseelementcontext

deduplicate code in compiled files

minor fix
reduce tpfalinearizer diff with new headerfiles
improve template argument orders
use less template arguments
clang-format new files and tpfalinearizer
ensure compilation on CPU without warnings
rename files and structs
avoid extra BOIQ copy in kernel
avoid extra BOIQ copy in getter
extract source terms to separate header

Co-authored-by: Atgeirr Flø Rasmussen <atgeirr.rasmussen@sintef.no>

improve GPU assembly implementation
update gpusparsematrix test

create new tpfalinearizerstructs file
extract what must be visible from both gpuparams
and tpfalinearizer itself

remove unused function and move comment to correct place

remove unused code

Simpler and renamed accessor.

protect flow_gpu_main from being compiled on all systems

use references instead of ptr

improve boiq ctor pattern

make refs const refs

improve bc computation and change cmake

simplify copy_to_gpu and remove alugrid from .cu

reduce diff & add extra dune undef
if you have cuda but do not wish to use the gpu assembly
then stuff was included that did not make sense, that is
hopefully now resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

manual:irrelevant This PR is a minor fix and should not appear in the manual

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants