Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patch/linear euler gpu resident #73

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

fluidnumerics-joe
Copy link
Member

This PR improves the performance of the GPU accelerated implementation of the Linear Euler 2D application. By defining an empty sourcemethod type bound procedure in the GPU backend implementation, the sourcemethod is completely bypassed, which eliminates unnecessary CPU code execution and host-device memcpy's.

In recent multi-GPU runs, we found that MPI ranks were all piling work
on the default device (device 0). This change sets the device ID for
each MPI rank.
This is needed so that the built in source method doesn't run on GPU
platforms. Since the source term for this model is zero currently, this
just adds memcpy overhead that is unnecessary. This patch significantly
improves model throughput on GPU platforms
Before allocating any GPU data, the domain decomposition must be
initialized first when using multiple MPI ranks. This is due to the fact
that the hipSetDevice call can potentially change the default device
used for each rank.

This patch fixes the broken CI run on this branch
@fluidnumerics-joe fluidnumerics-joe self-assigned this Nov 15, 2024
@fluidnumerics-joe fluidnumerics-joe marked this pull request as draft November 15, 2024 18:37
Copy link

codecov bot commented Nov 15, 2024

Codecov Report

Attention: Patch coverage is 88.27586% with 17 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/SELF_DomainDecomposition_t.f90 88.75% 9 Missing ⚠️
src/gpu/SELF_DomainDecomposition.f90 90.38% 5 Missing ⚠️
src/gpu/SELF_GPU.f90 72.72% 3 Missing ⚠️

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant