GPU-offload capabilities for offline Ecland driver - #56
Draft
mlange05 wants to merge 34 commits into
Draft
Conversation
Duplicate the current CPG1S block-loop driver as CPG1S_PARALLEL and wire STEPO1S to use it, preserving the existing orchestration path for comparison while CPG1S is prepared for layer-based refactoring.
This introduces the _LAYER_PARALLEL wrapper routines and creates dedicated OpenMP-parallel wrappers for SURFBC, SURFRAD, SURFTSTP and VDFMAIN1S to mimic the corresponding layout in EC_PHYS.
…host For validation purposes, we keep these on host for now, but use the SGET_ F-API pointer semantics.
This uses `!$acc declare` in the defining model and forces an update after the initial setup step.
This is required to offload the YUSRF object correctly in GPU code paths.
Imported from IFS commit fbb5e13e5b79e53b076e10dc04a5a7b514edb3dd with paths adapted for ecland.
mlange05
force-pushed
the
naml-ecland-gpu-dev
branch
from
July 30, 2026 07:46
3f63d74 to
a287b4f
Compare
mlange05
force-pushed
the
naml-ecland-gpu-dev
branch
from
July 30, 2026 12:11
a287b4f to
641b9b6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Note: I am filing this PR as a draft early to let reviewers assess the complexity of the PR and test the build-hpc CI pipeline. As the diff is quite large I'd be happy to break this contribution into multiple independent PRs to ease review and test assessment. Please let me know what you prefer. _
This PR brings GPU-support for the standalone Ecland offline driver for Nvidia GPUs by adding a dedicated build mode that uses the Loki source-to-source translation toolchain to auto-generate GPU-versions of the four main kernels in the offline driver. For this it substantially refactors the offline driver control flow and adjust some model-level sources.
Importantly, this does not yet enable full compatibility with the IFS-driven Ecland GPU-variant (needed for full extraction), due to the way the EC-physics package calls Ecland. However, this change constitutes a significant step in that direction and will allow further development and testing once the basic feature is established.
In more detail:
SURFBC,SURFRAD,VDFMAINS1SandSURFTSTP.<DRIVER>_LAYER_OPENMPsubroutine<DRIVER>_LAYER_PARALLELthat can call OpenMP or Loki+OpenACC GPU variants of the individual parallel region drivers. The behaviour is toggled at runtime with a namelist flagbuild-hpcworkflowContributor Declaration
By opening this pull request, I affirm the following: