add support for ROCm-based toolchains (rocm-compilers, rompi, rfbf, rfoss)#5099
add support for ROCm-based toolchains (rocm-compilers, rompi, rfbf, rfoss)#5099casparvl merged 15 commits intoeasybuilders:developfrom
rocm-compilers, rompi, rfbf, rfoss)#5099Conversation
Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
|
Math libraries are currently blocked by OpenMathLib/OpenBLAS#5664. |
|
Trying to build I.e. it tries to use a compiler Two possible solutions are:
Discussed in Slack with @Thyre , and we'll go for the 2nd option. The |
Use regular clang/clang++/flang binaries in this toolchain instead
|
As discussed in the meeting, we want to put To do this, we should (probably) change prepare_rpath_wrappers. But that's a rather huge function, and I guess we don't want to fully duplicate that for the rocm-compilers class.
For the first point: we would like clang++, to end up in the amdclang++ subdir. How do we do this, add an extra argument that specifies an optional prefix (amd) for this subdir? It is pretty specific, and probably will only ever be used by For the second point: we should probably add an option to What do you think @boegel ? |
|
@casparvl I think it should suffice to just extend what |
|
(draft) PR targeting this PR, not tested yet: |
…+ create additional RPATH wrapper alongside them for clang/clang++/flang
…r/rocm_compilers.py
use `amdclang`/`amdclang++`/`amdflang` compiler commands in ROCm compilers + create additional RPATH wrapper alongside them for `clang`/`clang++`/`flang`
There was a problem hiding this comment.
This worked flawlessly in this build of 19 rocm-compilers based easyconfigs.
I'm a little surprised that the is_deprecated function seems to be defined somewhat inconsistently - e.g. I would have expected one for rfbf as well, and I would have expected the sanitization of the a/b suffix from rompi to also be needed in rfoss - but I see the same is true for gompi, gfbf and foss. Not going to make a big deal out of it here: if it wasn't an issue for the GCC-based toolchain, I'm not considering it an issue here.
One thing I'm wondering about is the higher toolchains. I don't currently have to means to test them, as we have no easyconfigs for those (yet). Should we keep them in this PR, and merge them so that we at least have a starting point in framework when we start with these easyconfigs? Or should we only add rocm-compilers in this PR, and move the rest to a separate PR (that we'll merge & test when we have easyconfigs for those)?
I personally have a small preference for mergin this 'as is', since it's a bit easier to start experimenting with new easyconfigs (no need for running development builds and such) - and we can always fix issues if they surface then.
@boegel what do you think?
Confirmed, this is all new, so happy to see this merged and follow-up with specific PRs should any surprises arise while testing this further... |
rocm-compilers, rompi, rfbf, rfoss)
This PR adds a
rocm-compilerstoolchain based on the extremely heavy lifting done for the LLVM toolchain.We're reusing most of the efforts done there to get this toolchain running.
Marked as draft for now, since we're missing crucial parts such as math and MPI toolchains.
Since we're exploring as we go, we first need to get there with ECs...