Add support for llvm-amdgpu as compiler#268
Merged
msimberg merged 1 commit intoeth-cscs:mainfrom Nov 17, 2025
Merged
Conversation
This was referenced Oct 31, 2025
bcumming
approved these changes
Nov 3, 2025
simonpintarelli
approved these changes
Nov 3, 2025
Collaborator
Author
|
Any objections to merging this? |
Collaborator
Author
|
I'll go ahead and self-merge this. Let me know if you notice anything off after it's been merged. |
msimberg
added a commit
that referenced
this pull request
Nov 17, 2025
I left out the template file for llvm-amdgpu in #268. This PR adds that file.
msimberg
added a commit
that referenced
this pull request
Nov 20, 2025
Based on top of #268. It's easiest to only look at the unique commit for this PR: 3ed904a. This is the second change I need to be able to concretize `rccl-tests` with `llvm-amdgpu` as the compiler. This adds a configuration option to control the `concretizer:duplicates:strategy` configuration option. For `rccl-tests` I need to set the option to `full`, instead of the default `minimal`. Unfortunately I can't really explain why this is required. The docs explain a bit what the different options do: https://spack.readthedocs.io/en/latest/build_settings.html. ``` duplicates: # "none": allows a single node for any package in the DAG. # "minimal": allows the duplication of 'build-tools' nodes only # (e.g. py-setuptools, cmake etc.) # "full" (experimental): allows separation of the entire build-tool stack (e.g. the entire "cmake" subDAG) ``` I've asked for feedback on the spack slack: https://spackpm.slack.com/archives/C059JUS9T38/p1761907568615009. In the meantime I'm going to assume that this will be needed. I don't quite like that this is another ad-hoc spack configuration option exposed in the config. It'd be nice to just have a `concretizer` section exposed in `environments.yaml`, but that's a breaking change (`unify` is not nested under `concretizer`). Alternatively, perhaps it should be possible to supply a completely separate spack configuration that can be used to override anything, without having to add support for every single configuration option explicitly. --------- Co-authored-by: Alberto Invernizzi <9337627+albestro@users.noreply.github.com>
msimberg
added a commit
to eth-cscs/alps-uenv
that referenced
this pull request
Nov 24, 2025
Requires eth-cscs/stackinator#268 and eth-cscs/stackinator#269. With the `full` concretizer strategy, unfortunately some packages are by default concretized with `llvm-amdgpu` as compiler. I've forced them to use `gcc` as the compiler. `rccl-tests` and `aws-ofi-rccl` are unversioned, so I'm pinning them to recent commits just for reproduciblity. I need to try https://github.com/HewlettPackard/open-ofi-xccl eventually in place of `aws-ofi-rccl` as `open-ofi-xccl` should be the preferred long term solution as far as I understand, but for now `aws-ofi-rccl` seems to work and gives decent performance.
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.
This is useful to be able to build
rccl-testswhich wants to be built withllvm-amdgpu(cf. spack/spack-packages#2212).The use of
compilers.get('llvm-amdgpu')in the jinja templates is becausecompilers.llvm-amdgpuis interpreted as "access thellvmkey ofcompilers.