-
Notifications
You must be signed in to change notification settings - Fork 69
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
PackageCompiler: LLVM error on machine with AVX-512 #544
Comments
LoopVectorization specifically tries to use certain AVX512 instructions when the host is capable of them. Unfortunately, it doesn't know when you're compiling for a generic target, so it'll still try to use them. LLVM can't legalize these for a generic target, resulting in the error. Specifically, VGETMANT shows up in your error, which requires AVX512VL. From memory, you can do something like
and this should roughly correspond to a generic target. |
Thanks for the quick response! I added the lines below
And the compiling of a nonincremental system image with
I guess there is no (simple) workaround for this, except using Julia 1.9, see also this issue JuliaLang/PackageCompiler.jl#924. |
The following errors occur on Windows and Linux machines with AVX-512 with the following CPU, with Julia 1.11.3 and LoopVectorization 0.12.171 for Wflow.
The CPU detected by LoopVectorization is
skylake-avx512
. The build is only successful when this CPU name is set ascpu_target
. When other CPU targets are added (for examplegeneric
) the build fails with above errors.Perhaps someone can tell from the errors what is causing the problem and maybe knows a workaround. In case it would help, let me know if any additional info is required.
The text was updated successfully, but these errors were encountered: