-
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
0.3.8 tests returns fatal errors on Skylake with GCC 9.2.0 #2408
Comments
PS, a build on Broadwell with the same config settings works as it should |
Currently rebuilding without vectorize... |
I confirm the same error on a The build command is List of failed tests:
|
confirmed, removing -ftree-vectorize makes the problem go away. |
Would be nice if there was a proper fix for this. |
Disabling the dgemv_n microkernel for SkylakeX in kernel/x86_64/dgemv_n_4.c would be my first bet. (Unless 0.3.7 or earlier worked with -ftree-vectorize - that file is unchanged from 0.3.4 or so) |
It didn't work with vectorize before either, just bringing this up again, since we accidentally forgot to turn if off at the first build. |
0.3.7 fails too, but not with GCC 8.3.0, only with GCC 9.2.0. |
Similar issues happened before I think, when a newer GCC version started shuffling/clobbering different registers. @wjc404 did a lot of work on the AVX-512 assembly, maybe he has a better idea what goes wrong. |
The test fails with alpha=0, which means it's actually an issue with DSCAL I suspect. |
Indeed putting the generic |
Passes with a snapshot of gcc 10 ... possible gcc9 bug ? Trying attribute(no_tree_vectorize) on the dscal_kernel_8 in dscal_microk_skylakex-2.c now... works. |
|
dscal_kernel_8 noinline confirmed as a working solution. Using |
Strange - no_tree_vectorize definitely worked for me, only difference is that I prepended it as |
Ok, will check that way then... |
Confirmed, the no-tree-vectorize works: |
As another datapoint, compilation with gcc 7.4 also shows no problem, so it looks as if it is only 9.x that miscompiles the dscal kernel. |
The issue is in dscal.c, so far openblas has been lucky it hasn't caused issues before: warning - tabs corrupted, I'll file a PR:
|
Ouch. Here we go again... guess the earlier clobber list should have warned me that it is not just n |
Fix inline asm in dscal: mark x, x1 as clobbered. Fixes #2408
We get multiple fatal errors when running the tests on Skylake systems.
CFLAGS = -O2 -ftree-vectorize -march=native -fno-math-errno
For instance:
Any thoughts on that?
The text was updated successfully, but these errors were encountered: