Skip to content

prgenv-gnu with ROCm 7: vanilla MPICH#299

Open
simonpintarelli wants to merge 56 commits into
mainfrom
prgenv-gnu-rocm-7-vanilla-mpich
Open

prgenv-gnu with ROCm 7: vanilla MPICH#299
simonpintarelli wants to merge 56 commits into
mainfrom
prgenv-gnu-rocm-7-vanilla-mpich

Conversation

@simonpintarelli

Copy link
Copy Markdown
Member

No description provided.

msimberg and others added 30 commits November 14, 2025 11:05
…with llvm-amdgpu to avoid rebuilding python packages
Issue is:
ImportError: /user-environment/env/default/lib/libhipsparse.so.4: undefined symbol: rocsparse_destroy_spmv_descr

which is strange because:
 ldd /user-environment/env/default/lib/libhipsparse.so.4
        linux-vdso.so.1 (0x00007ffddc1c1000)
        /user-environment/env/default/lib/librocsparse.so (0x00007f6af9a27000)
 nm /user-environment/linux-zen3/rocsparse-7.1.0-qfflrfxfu2vaqu52hitvwyukdwq767rf/lib/librocsparse.so | grep rocsparse_destroy_spmv_descr
0000000002f33fc0 T rocsparse_destroy_spmv_descr
@simonpintarelli

Copy link
Copy Markdown
Member Author

cscs-ci run alps;system=beverin;uarch=mi200;uenv=prgenv-gnu:7.1.0

@msimberg

msimberg commented Mar 5, 2026

Copy link
Copy Markdown
Collaborator

Note that this PR is required for reframe tests to pick the correct mpi type for slurm: eth-cscs/cscs-reframe-tests#531.

@msimberg

msimberg commented Mar 5, 2026

Copy link
Copy Markdown
Collaborator

cscs-ci run alps;system=beverin;uarch=mi200;uenv=prgenv-gnu:7.1.0

@simonpintarelli

Copy link
Copy Markdown
Member Author

cscs-ci run alps;system=beverin;uarch=mi200;uenv=prgenv-gnu:7.1.0

@simonpintarelli

Copy link
Copy Markdown
Member Author

cscs-ci run alps;system=beverin;uarch=mi200;uenv=prgenv-gnu:7.1.0

1 similar comment
@msimberg

msimberg commented Mar 9, 2026

Copy link
Copy Markdown
Collaborator

cscs-ci run alps;system=beverin;uarch=mi200;uenv=prgenv-gnu:7.1.0

@msimberg

msimberg commented Mar 9, 2026

Copy link
Copy Markdown
Collaborator

eth-cscs/cscs-reframe-tests#537 is at the very least required for the failing rocHPL tests. However, it seems like they still fail after that PR as well.

Comment thread recipes/prgenv-gnu/7.1.0/amdgpu/config.yaml Outdated
Comment thread recipes/prgenv-gnu/7.1.0/amdgpu/environments.yaml Outdated
@msimberg

msimberg commented Mar 9, 2026

Copy link
Copy Markdown
Collaborator

cscs-ci run alps;system=beverin;uarch=mi200;uenv=prgenv-gnu:7.1.0

Comment thread recipes/prgenv-gnu/7.1.0/amdgpu/config.yaml Outdated
@msimberg

Copy link
Copy Markdown
Collaborator

cscs-ci run alps;system=beverin;uarch=mi200;uenv=prgenv-gnu:7.1.0

2 similar comments
@msimberg

Copy link
Copy Markdown
Collaborator

cscs-ci run alps;system=beverin;uarch=mi200;uenv=prgenv-gnu:7.1.0

@msimberg

Copy link
Copy Markdown
Collaborator

cscs-ci run alps;system=beverin;uarch=mi200;uenv=prgenv-gnu:7.1.0

Comment thread recipes/prgenv-gnu/7.1.0/amdgpu/environments.yaml
Comment thread recipes/prgenv-gnu/7.1.0/amdgpu/environments.yaml
Comment on lines +84 to +85
- NCCL_NET_PLUGIN: "ofi"
- HSA_NO_SCRATCH_RECLAIM: "1"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unsure if these two belong here, but adding them for now for testing.

The new NCCL plugin isn't found anymore by NCCL_NET="AWS Libfabric" (nor NCCL_NET="Libfabric"). RCCL only looks for libnccl-net.so, not librccl-net.so which does exist in the uenv. NCCL_NET_PLUGIN=ofi or NCCL_NET_PLUGIN=librccl-net.so both work with the new uenv. NCCL_NET_PLUGIN=ofi only works with the new uenv but noot the old 6.3.3 uenv. I'll have to see how to best deal with this in the reframe tests.

HSA_NO_SCRATCH_RECLAIM=1 is required with the new uenv because RCCL warns about NCCL WARN HSA_NO_SCRATCH_RECLAIM=1 must be set to avoid RCCL perf hit, rocm ver:70126014... except that if I don't set it nccl-tests don't run at all so it's a bit more than a perf hit.

@msimberg

Copy link
Copy Markdown
Collaborator

cscs-ci run alps;system=beverin;uarch=mi200;uenv=prgenv-gnu:7.1.0

@msimberg

Copy link
Copy Markdown
Collaborator

At least the RCCLTestsUENV reframe tests now work correctly with the latest environment variables (though I would probably move them to cscs-reframe-tests). sendrecv performance is worse than the reference on mi200 but that can be updated. We don't care much about mi200, particularly not for RCCL (and performance was always worse on mi200 vs mi300).

I'm still waiting to see if the patchelf'd cray-mpich works similarly well on #273. I've applied the same aws-ofi-nccl changes and environment variables there. Build here: https://gitlab.com/cscs-ci/ci-testing/webhook-ci/mirrors/551234120955960/1440398897047560/-/pipelines/2376126538.

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.

3 participants