-
Notifications
You must be signed in to change notification settings - Fork 216
Add support for amdgcn-capabilities configuration option and amdgcn_capabilities easyconfig parameter + related templates, similar to cuda-compute-capabilities
#4860
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
958ad0a to
bff1bfb
Compare
bff1bfb to
0e7aaf3
Compare
cuda-compute-capabilitiescuda-compute-capabilities
0e7aaf3 to
d4ba387
Compare
|
Started to create a test set of EasyConfig & EasyBlock changes to test the option, starting with LLVM & CMake... Let's see if this works the way I expect. https://github.com/Thyre/easybuild-custom/tree/support-passing-amdgcn |
9f3fc25 to
5a82798
Compare
amdgcn_capabilities build option
easybuilders/easybuild-easyblocks#3824
5a82798 to
db9a681
Compare
Signed-off-by: Jan Andre Reuter <[email protected]>
AMD doesn't name this compute capabilities, and amdhsa is only used when lowering to HSA (but amdpal & mesa3d are also possible). Therefore, simple the name option 'amdgcn-capabilities'. Signed-off-by: Jan Andre Reuter <[email protected]>
This allows users to handle cases like LLVM, where building with GPU support is optional, but users might still want to install the software without GPU support. Signed-off-by: Jan Andre Reuter <[email protected]>
Signed-off-by: Jan André Reuter <[email protected]>
db9a681 to
4af19e3
Compare
Signed-off-by: Jan André Reuter <[email protected]>
6e32eac to
afa6558
Compare
Micket
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
I really don't have any hardware to test any of this on. I trust you have tested this quite a bit?
|
We are hitting rate limits (again?) |
I've basically used this to build all of the ROCm software on two separate machines which I'm trying to bring to EasyBuild (after my vacation). You'll find quite a few test reports from my Arch Linux machine (or Some test reports:
What I haven‘t explicitly tested (again) is using the generic targets, also because they‘re still quite new in ROCm. |
|
OK so i'll let you also test that before merging then? I'll also be away traveling after this week, so if anyone else wants to hit merge please go ahead. |
|
Yeah, I'll test those things once I'm back home. If everything works, I'll ping in our |
Do not allow patterns like `gfx10--generic` Co-authored-by: Davide Grassano <[email protected]>
|
I don't know how we could test this in the test suite itself, but this is the result with our regex pattern now: |
Signed-off-by: Jan André Reuter <[email protected]>
Yeah played around with it a little bit but every function i tried really does not seem to want to run the |
Crivella
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
Going in, thanks @Thyre! |
cuda-compute-capabilitiesamdgcn-capabilities configuration option and amdgcn_capabilities easyconfig parameter + related templates, similar to cuda-compute-capabilities
Summary
This PR aims to implement a similar option to
cuda-compute-capabilities(and related options) for AMD GPUs.The option can then replace the manual handling done in some EasyBlocks, e.g. Clang & LLVM, allowing to enable (some) GPU builds without the need to alter the EasyConfig.
Most of the handling was copied from CUDA, while some options were skipped as they don't make much sense, e.g.
cuda_cc_space_sep_no_period.The used regex should support all GPU architectures starting from
gfx600, including the more recent generic targets.Actual compiler support then needs to be present in the compiler consuming these architectures. Both GCC and LLVM accept the same naming, i.e.
gfx[...], including generic targets.Missing features compared to CUDA
cuda_cache_diroption is missing. I haven't found something similar for HIP yet, but may simply have missed itgfx90agfx?More to be determined.
Known issues
gfx10--genericto pass, even though it is not allowed.Resolves #4829