Enabling GPUS in CIME #4333
Replies: 8 comments 37 replies
-
See changes in cime here: #4334 |
Beta Was this translation helpful? Give feedback.
-
Changes in other components are here: |
Beta Was this translation helpful? Give feedback.
-
Can you provide some create_newcase useage examples? Or a machine file example? |
Beta Was this translation helpful? Give feedback.
-
Thanks @jedwards4b for working on this! Regarding your question, I am not sure whether it is worth the effort to consider the case that both OpenACC and OpenMP offload are used at the same time. If you do want to account for this type of situation, we can apply the compilation flags |
Beta Was this translation helpful? Give feedback.
-
From @sarats : As this mandates GPU_OFFLOAD, we probably have to add a third option to handle the case for C++ codebases that use a library approach as it won't be OpenMP or OpenACC. |
Beta Was this translation helpful? Give feedback.
-
Can you illustrate an example of where specialization for GPU_TYPE resides? In CIME machine section? |
Beta Was this translation helpful? Give feedback.
-
From e3sm perspective, is it needed in e3sm? right now we have cmake macros files for "compiler"/machine pairs (where "compiler" can be any config we want to support) with flexible cmake vars, including conditional ones for each component. So, would this PR add functionality? |
Beta Was this translation helpful? Give feedback.
-
I wonder if GPU and CPU threading can be unified in a single option. Something like |
Beta Was this translation helpful? Give feedback.
-
I have created a cesm branch in my fork called gpu_improvements:
git clone https://github.com/jedwards4b/CESM.git -b gpu_improvements
cd cesm./manage_externals/checkout_externals
There are two new options to create_newcase --gpu-type and --gpu-offload
I have reworked the tests that you defined in cam to use smaller resolutions and also the se dycore and different numbers of gpus per node.The compiler is nvhpc not nvhpc-gpu - compiler definitions with -gpu will be removed by the time this PR is accepted. I am also going to share this
with the e3sm team for feedback prior to merging so there may be further changes.
One question I have is what to do if there is more than one offload method in the model, one section using OpenACC and another using OpenMP?I'm not sure how we would handle that.
Beta Was this translation helpful? Give feedback.
All reactions