-
Notifications
You must be signed in to change notification settings - Fork 718
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
{compiler}[AOMP/11.12-0] Add AOMP compiler module #12018
Conversation
I'll add the dependency once it is merged =] |
@boegelbot please test @ generoso |
@migueldiascosta: Request for testing this PR well received on generoso PR test command '
Test results coming soon (I hope)... - notification for comment with ID 767360274 processed Message to humans: this is just bookkeeping information for me, |
Test report by @boegelbot |
Test report by @migueldiascosta |
@nordmoen w.r.t. to my failed test above, it seems that at least
|
I'm looking around in the build setup, but I can't really find anything where it should be hardcoded and not set correctly by loading |
@migueldiascosta I discovered that additional build tools were needed, with one of them being |
@nordmoen Since we are not building clang (et al), I suppose we need a way of always passing |
Yes, as far as I understood you have to use |
Looking through the build sources of |
maybe a compiler wrapper... @boegel ? |
@nordmoen My apologies for never replying to your hail for help/input, this got totally snowed under... We can definitely put lightweight wrappers in place to make sure the right GCC installation is picked up, if there's no better alternative, but then we'll need to implement a small easyblock for this I guess. That said, is there any particular reason why we're not building AOMP from source, and configure the build with edit: At 2nd look, maybe this is a from-source build, but then why aren't we using the procedure outlined at https://github.com/ROCm-Developer-Tools/aomp/blob/master/docs/RELEASESOURCEINSTALL.md? Maybe it's better to discuss this interactively in EasyBuild Slack? |
# support, e.g. '50,75'. | ||
preinstallopts += ' AOMP_BUILD_CUDA=1 ' | ||
preinstallopts += 'CUDA="$CUDA_ROOT" ' | ||
preinstallopts += 'NVPTXGPUS="70"' |
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.
I think this should be configurable. Does it support 7.0 or sm_70 format? Then you can use the templates cuda_compute_capabilities etc.
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.
Based on the pre-configured targets, I assumed one had to use whole numbers only.
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.
Hm, then I'd say an EasyBlock is better here. I'm afraid short of patching the EC (e.g. via hooks) this would limit the GPU usability unusually, especially after we introduced the --cuda-compute-capabilities
option
This has the additional benefit that those hard-coded, repeated preinstallopts can be unified and handled better (e.g. detecting presence of CUDA)
It seems that Because of this I don't see the value in adding this package, especially when it seems like there is quite a lot work to get it set up properly. |
Just had a meeting with AMD where they confirmed that |
This is an updated version of the PR easybuilders#12018. This PR updates the version to `13.0-2`. In addition this PR adds an improved patch which should force the built modules to pick up the EasyBuild installed version of `gcc`. This module requires the `aomp.py` EasyBlock to build.
Closing in favor of #12909 |
This change adds an AOMP compiler module to EasyBuild.
The setup has been tested and is working on both AMD and Nvidia GPUs.
The patch is necessary to remove some hard coded behavior on RHEL8 and to get the build process to respect EasyBuild
--parallel
option. The reason for the olderGCC
version is to conform with what AOMP expects when building, it could probably work with a newer version, but I have not tried. The same goes forgcccuda
, AOMP recommendsCUDA
version10
.