-
Notifications
You must be signed in to change notification settings - Fork 203
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
Allow optarch values to be partial maps including vector extensions #3797
base: develop
Are you sure you want to change the base?
Conversation
6298aa9
to
3d1bff8
Compare
c1e28e2
to
ae1c8c7
Compare
@Flamefire: Tests failed in GitHub Actions, see https://github.com/easybuilders/easybuild-framework/actions/runs/4956304781
bleep, bloop, I'm just a bot (boegelbot v20200716.01) |
Instead of only setting optimal compiler arguments based on architecture and CPU family/vendor also include the supported vector extensions as criteria to choose flags. To simplify specifying generic flags allow partial matches, e.g. a fallback setting for any x86 arch which doesn't have more specific values. Example: COMPILER_OPTIMAL_ARCHITECTURE_OPTION = { (systemtools.X86_64, ): 'xHost', (systemtools.X86_64, systemtools.AMD, systemtools.AVX2): 'mavx2', }
Intel will use SSE2 when passed -xHost on AMD systems Be more specific here by passing e.g. AVX2 when that is available.
Avoid spurious failures if the lock gets removed before the code checks for it.
Ping on this as this came up in the EUM with respect to intel compilers |
To add to this, it seems like spack has already done some work in mapping CPU feature flags to compiler versions, see microarchitectures.json. There is some logic in portage as well, where |
We just got hit by this not being implemented:
When compiling HDF5 with the Intel compiler and |
Instead of only setting optimal compiler arguments based on architecture and CPU family/vendor also include the supported vector extensions as criteria to choose flags.
To simplify specifying generic flags allow partial matches, e.g. a fallback setting for any x86 arch which doesn't have more specific values.
Example:
Closes #3793