-
Notifications
You must be signed in to change notification settings - Fork 52
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
Build failure - related to avx512? #217
Comments
Oh, but we do have gcc v9 on this machine, and that seems to work. |
Thanks for the report! Glad you have a workaround, but we should get gcc 5 to work anyway. I don't have a gcc 5 environment immediately available, but let me see if I can drum one up... Feel free to leave the issue open in the meantime. |
For the record, $ gcc --version succeeds. |
Or update the docs to note this requirement :) |
Probably related to #183 |
@dstndstn Could you share the output of My best guess is that the CPU supports AVX512VL but not the gcc 5 compiler, so we're falling back to the AVX2 version of On the other hand, the gcc 5 release notes suggest it should support AVX512VL. So the preprocessor output will be interesting! |
|
Thanks. So indeed, despite the CPU (and supposedly the compiler??) supporting AVX512VL, the compiler is not trying to use it. @manodeep Maybe there's a way to detect this scenario manually and pass |
Interesting! Looks like both [~ @farnarkle2] ml --force purge && ml gcc/5.5.0
[~ @farnarkle2] gcc -march=native -dM -E - < /dev/null | grep AVX512
#define __AVX512F__ 1
#define __AVX512BW__ 1
#define __AVX512CD__ 1
#define __AVX512DQ__ 1
[~ @farnarkle2] ml --force purge && ml gcc/6.4.0
[~ @farnarkle2] gcc -march=native -dM -E - < /dev/null | grep AVX512
#define __AVX512F__ 1
#define __AVX512BW__ 1
#define __AVX512CD__ 1
#define __AVX512DQ__ 1
[~ @farnarkle2] ml --force purge && ml gcc/7.3.0
[~ @farnarkle2] gcc -march=native -dM -E - < /dev/null | grep AVX512
#define __AVX512F__ 1
#define __AVX512BW__ 1
#define __AVX512VL__ 1
#define __AVX512CD__ 1
#define __AVX512DQ__ 1 @dstndstn If you add @lgarrison Perhaps we should print out an info message warning users on AVX512-systems with |
@manodeep If we can detect the scenario, it seems we should just fix it ourselves my adding the But not in the corresponding doc page: https://gcc.gnu.org/onlinedocs/gcc-5.5.0/gcc/x86-Options.html#x86-Options My guess it is it's supported, just not automatically added with the Regardless, I think the AVX2 fallback has a real bug. |
If I do (with gcc 5.5.0)
it gets further but dies with
|
Thanks. I think that one is probably this bug: https://stackoverflow.com/questions/51290930/why-does-gcc-not-provide-the-avx512f-intrinsic-for-absolute-value-of-floats?rq=1 Looks like we can work around this one as well. That's two workarounds for gcc 5... but gcc 5.5.0 is only 3 years old, not sure it makes sense to drop support! |
I am wondering if we should report these two bugs (missing intrinsics, missing @lgarrison I agree with you - we should be able to support compilers that are only 3 years old. |
After looking through gcc docs (https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html#x86-Options), apparently |
I think there's 3 things to do here:
@manodeep, does this all sound right to you? |
This will require a bit of thinking so that the complexity does not go up (and that we are not implementing For the The AVX2 definitely is incorrect and needs to be replaced with |
General information
Issue description
Compile error
Expected behavior
Actual behavior
What have you tried so far?
System information:
The text was updated successfully, but these errors were encountered: