Repository navigation
Add Tuolumne AMD (tamd): AFAR 24.3.0 amdflang + Cray MPICH, gfx942 - #2032
Conversation
tamd mirrors famd and shares its modules.sh setup block; only the default OLCF_AFAR_ROOT differs. Over famd's modules it adds what Tuolumne lacks: cray-pmi (for the -lpmi/-lpmi2 link), MFC_AMD_GPU_ARCH=gfx942 (MI300A), and a LIBRARY_PATH to gcc-toolset-14, since amdflang picks gcc-toolset-15, which has no libquadmath.so there. The amdflang path hardcoded --offload-arch=gfx90a; it now reads MFC_AMD_GPU_ARCH and defaults to gfx90a, so famd and amdfund are unchanged.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f01d526f08
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| % if engine == 'batch': | ||
| # flux: -N ${nodes} |
There was a problem hiding this comment.
Register Flux before exposing the tamd batch template
On a Tuolumne login node exposing only Flux, ./mfc.sh run ... -e batch -c tamd cannot reach this script: toolchain/mfc/run/queues.py:84-95 checks only LSF, SLURM, and PBS and raises when none is active, despite this branch emitting Flux directives. Add a Flux queue implementation/detector (or otherwise submit this script through Flux); without it, the new batch path always aborts before queueing and only interactive allocations work.
AGENTS.md reference: AGENTS.md:L11-L11
Useful? React with 👍 / 👎.
|
Claude Code Review Head SHA: f01d526 Files changed:
Findings:
(Checked: |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2032 +/- ##
=======================================
Coverage 61.75% 61.75%
=======================================
Files 86 86
Lines 22787 22787
Branches 3357 3357
=======================================
Hits 14073 14073
Misses 6225 6225
Partials 2489 2489 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Adds
tamd(LLNL Tuolumne, AFAR amdflang + Cray MPICH, OpenMP offload), the Tuolumne counterpart offamd.tuo(CCE) is unchanged.Changes
toolchain/modules:tamduses the same modules asfamd(python cmake,PrgEnv-amd,cpe/26.03), plus three additions that Tuolumne needs:cray-pmi: the shared link line has-lpmi -lpmi2. Frontier loads this module by default; Tuolumne does not.MFC_AMD_GPU_ARCH=gfx942: Tuolumne's GPUs are MI300A.LIBRARY_PATHset to gcc-toolset-14: amdflang picks the newest gcc-toolset (15), which has nolibquadmath.soon Tuolumne, so even a hello-world fails to link.toolchain/bootstrap/modules.sh:tamdshares thefamdsetup block (CRAY_MPICH_INC/LIB, hipfort,FC). Only the defaultOLCF_AFAR_ROOTdiffers.tamdis also added to the menu and to theCRAY_LD_LIBRARY_PATHexclusion.cmake/MFCTargets.cmake: the amdflang path hardcoded--offload-arch=gfx90afor compile, link, and the device stubs. It now readsMFC_AMD_GPU_ARCHand defaults togfx90a, sofamdandamdfundbehave as before. With gfx90a on MI300A,omp_get_num_devices()returns 0.toolchain/templates/tamd.mako:tuo.makowith-c tamd, minus theMPICH_GPU_SUPPORT_ENABLEDexport (the shared block unsets it, asfrontier_amd.makodoes).AFAR install
The default root is
/p/lustre5/bryngelson1/afar/therock-afar-24.3.0-multiarch-10.1.0-592954c, readable by all users. Override it withOLCF_AFAR_ROOT.The public 24.3.0 tarball has no flang-built MPI modules, and Cray's
mpi.mod(classic flang) can't be read by flang 24. I builtmpi,mpi_base,mpi_constants,mpi_sizeofs, andpmpi_basefrom MPICH 4.3.1 source with amdflang. They are installed at$OLCF_AFAR_ROOT/include/mpich4.3.1, the pathfamdreads. Cray MPICH 9.1.0 is based on MPICH 4.3.0a1; all 276PARAMETERconstants match Cray'smpif.h, which also has the Cray-onlyMPI_MODE_STREAM. MFC still links Cray'slibmpifort_amd/libmpi_amd. Anyone installing another AFAR drop on Tuolumne needs to repeat this step.Testing
On Tuolumne pdebug (1 node, 4× MI300A), built with
./mfc.sh build --gpu mpfrom a clean tree:syscheck, 4 ranks: MPI and OpenMP offload checks pass.benchmarks/5eq_rk3_weno3_hllc, 4 ranks / 4 GPUs: pre_process, simulation, and post_process all succeed (0.23 ns/gp/eq/rhs)../mfc.sh test --gpu mp -% 10 --no-chemistry -- -c tamd: 71/71 passed, no retries.Not tested:
-e batchsubmission throughtamd.mako, chemistry cases, and famd/amdfund after the arch change (the default keeps their flags identical).Acknowledgement