-
Notifications
You must be signed in to change notification settings - Fork 67
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
LoopVectorization PackageCompiler'd into sysimage crashing #364
Comments
I don't see anything particularly problematic in the diff between Octavian 0.3.5 and 0.3.6 compared to what's already there. |
PackageCompiler option Tested with Julia v1.7.0-rc3, LoopVectorization v0.12.98, Octavian v0.3.8. |
Reopening, this still fails
with Julia v1.7.0-rc3, LoopVectorization v0.12.98, Octavian v0.3.8, both PackageCompiler v1.7.7 and v2.0.2.
|
Could be a subtyping bug. Printing out the types in https://github.com/JuliaLang/julia/blob/0c2117396336fe471403f7ff9b4612a448e633a3/src/subtype.c#L1847 might help reduce this. |
With LoopVectorization v0.12.98, OrdinaryDiffEq v5.67.0, Octavian v0.3.8, PackageCompiler v2.0.2.
Some Julia versions crash during startup, some are fine
The issue seems more like a Julia issue, maybe it should be opened at https://github.com/JuliaLang/julia/issues ? |
|
With Julia v1.7.0 official binaries from https://julialang.org/downloads/ I can reproduce the crash with building the sysimage with
both on
and same Windows machine running under WSL2
but not on
If I remove the Some combination of packages compiled 10 days ago worked fine, but same packages with updated versions compiled today results in a crashing sysimage. Under WSL2, compiling Julia https://github.com/JuliaLang/julia/tree/v1.7.0 and then compiling Octavian into sysimage does not crash. Under WSL2, compiling Julia with However, Under WSL2, looks like hardware performance counters are not available, so I cannot use
@KristofferC how would one do this in practice? |
Out of curiosity, what is your host running? However, the fact that it apparently works in a debug build suggests this may not be the problem. I'm (very) slowly working on being able to replace everything about how LV works. I'd be happy to accept PRs that work around (or fix) the problem, if things like removing an |
Goal is to be able to debug a Julia build that crashes when loading with a problematic sysimage. This crash happens with the official Julia binaries. I think ruling out a Julia bug is worth this effort, otherwise a workaround would be fine. I could not make the build of Julia locally with
|
…recompiled image (#127) * Remove inline from forward_diff.jl to workaround startup crash with precompiled image Workaround JuliaSIMD/LoopVectorization.jl#364 * Bump version
Fix in JuliaLinearAlgebra/Octavian.jl#127 is not effective anymore. With PackageCompiler v2.0.4, OrdinaryDiffEq v6.4.1, Octavian v0.3.11,
and then
|
Smaller example that drops Octavian and OrdinaryDiffEq out of the problem. With PackageCompiler v2.0.4, LoopVectorization v0.12.101
Taking function from Octavian https://github.com/JuliaLinearAlgebra/Octavian.jl/blob/v0.3.11/src/macrokernels.jl#L83-L92
|
Thanks for getting a more minimal reproducer. |
I can now create the crash on AMD EPYC 7371 on Linux as well, so there is hope I could get rr running in that machine, but I am not an admin there. |
Are there any updates on this issue? We are trying to use PackageCompiler.jl to reduce startup times for parallel simulations of Trixi.jl. However, after creating a sysimage, Julia crashes on startup with the same error as shown above. Using @jaakkor2's example from above, I am able to reproduce the error also by just baking LoopVectorization.jl into the sysimage. My system (if it helps):
Is there anything we can do to assist in debugging? I do have admin rights on said machine... CC @ranocha |
FWIW, I seem to have been able to create an |
Interestingly, I managed to create a sysimage with LoopVectorization as an indirect dependency and that didn't crash. Is that weird or is it weird? I basically took the same script I used before, except that I manually copied all dependencies from the Project.toml and removed |
Small update: I am not able to reproduce this issue using the MWE from @jaakkor2 above anymore, with Julia v1.7.2, LoopVectorization v0.12.101, and PackageCompiler v2.0.4 and using the same machine as before. Unfortunately, I do not have the Manifest from back then - is it possible that this was automagically fixed by an updated dependency of PC or LV? Or are others still able to reproduce this? |
I tried to fix this by having HostCPUFeatures check Julia's target, and update if not native: JuliaSIMD/HostCPUFeatures.jl@2bdb3df Maybe it did actually help? |
I haven't seen this issue for months. I now tried with Julia 1.8.2/1.8.3 Linux/Windows, and the MWE above did not reproduce. The issue used to be stochastic, depending on the set of packages and their versions that were precompiled into the image. |
FWIW, I work for PumasAI, and we build sysimages (that include LoopVectorization, an indirect dependency) for customers. I don't work on building the images, but AFAIK it never really caused problems there, and the list of dependencies is rather large (including OrdinaryDiffEq and many other packages). |
Retested quickly with Julia v1.10.2, LoopVectorization v0.12.169, Octavian v0.3.27, OrdinaryDiffEq v6.74.1, and I could not reproduce this issue anymore. Closing the issue. |
LoopVectorization compiled into sysimage like this
causes a crash when Octavian is loaded
If I compile the sysimage with
Julia does not start at all.
Versions
I think this is a regression in LoopVectorization, this combination works
Edit:
Edit2:
Regression between Octavian v0.3.5 and v0.3.6.
cc: @KristofferC JuliaLang/PackageCompiler.jl#453
The text was updated successfully, but these errors were encountered: