-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Disable AVX-512 on Windows #1708
Comments
But you do not use -O3 , so the bug is not relevant, nor pertains windows globally. Most likely your 'as' is much older than your gcc, so it does not understand assembly emitted by gcc... It does not choke on openblas code. |
Ideally the compile test in c_check (and system_check.cmake) should catch this (and define NO_AVX512 automatically), but from the GCC bug it appears to depend on some particular use of registers that is not reflected in the current test code. (Not entirely sure if we can just borrow their test from the end of https://gcc.gnu.org/viewcvs/gcc/trunk/libgfortran/acinclude.m4?view=markup&pathrev=244636 (GCC PR79127) as that would move it from GPL to three-clause BSD, but it is probably easy to come up with an equivalent test now that the underlying problem is understood.) |
Red hat6 could use avx2 test of a class, no gpl does not remove that easily unless you convince author to give it to you without gpl |
Perhaps you could try if simply changing the zmm2 register now used in the test at |
Also worth experimenting in direction of planting avx512 capable binutils to compilers. Can you show |
My colleague @staticfloat knows more about the toolchain we're using, perhaps he can chime in here. |
We are using a Cygwin-based environment, within which we install a
|
So could you test please if modifying the c_check code is sufficient to work around lack of avx512 support in mingw ? |
Mayby compiling with |
Modifying the Adding |
Thanks. From your description I assume your environment would have been detected as OSNAME=CYGWIN_NT (in the first line of Makefile.conf) already, so Makefile.x86_64 could append the option (where it adds -march=skylake-avx512) based on this ? |
Adding `-fno-asynchronous-unwind-tables` to the C compiler flags passed to OpenBLAS works around errors claiming an invalid register for `.seh_savexmm`. We've been running into this on the 64-bit Windows buildbots. See discussion in OpenMathLib/OpenBLAS#1708.
Yes, that seems correct. |
Adding `-fno-asynchronous-unwind-tables` to the C compiler flags passed to OpenBLAS works around errors claiming an invalid register for `.seh_savexmm`. We've been running into this on the 64-bit Windows buildbots. See discussion in OpenMathLib/OpenBLAS#1708.
Adding `-fno-asynchronous-unwind-tables` to the C compiler flags passed to OpenBLAS works around errors claiming an invalid register for `.seh_savexmm`. We've been running into this on the 64-bit Windows buildbots. See discussion in OpenMathLib/OpenBLAS#1708.
Adding `-fno-asynchronous-unwind-tables` to the C compiler flags passed to OpenBLAS works around errors claiming an invalid register for `.seh_savexmm`. We've been running into this on the 64-bit Windows buildbots. See discussion in OpenMathLib/OpenBLAS#1708. (cherry picked from commit 651a727)
This is a closed issue but on MSYS2 clang 7.0.0 should be compatible with AVX-512. |
Thanks. Despite the title of this issue, AVX-512 was never actually disabled on windows - on Cygwin hosts and Windows with gcc, a gcc option is added to the CFLAGS to work around a mingw-gcc bug. Clang builds should not be affected as long as they manage to compile the small test code correctly. |
The code compiles but it won't run as I do not have AVX-512 capable CPU. |
It will run just fine once you have CPU. |
Adding `-fno-asynchronous-unwind-tables` to the C compiler flags passed to OpenBLAS works around errors claiming an invalid register for `.seh_savexmm`. We've been running into this on the 64-bit Windows buildbots. See discussion in OpenMathLib/OpenBLAS#1708.
There is apparently a GCC bug that prevents building AVX-512 code on Windows. We observed this when building OpenBLAS on the 64-bit Windows Julia buildbot (which I'm told has a Skylake-X processor). Is there a way to disable OpenBLAS building AVX-512 on Windows? Or perhaps a patch that disables it automatically?
The text was updated successfully, but these errors were encountered: