-
Notifications
You must be signed in to change notification settings - Fork 6
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
Does not support JULIA_CPU_TARGET correctly #12
Comments
@vchuravy any ideas on how one could make this package pkgimage compatible? |
Long term, the plan is to deprecate this stack. |
The problem is that if it is generating, for example, AVX512 code, you probably can't run it on a target without it. So things like a Beowulf cluster with a shared filesystem are tricky. |
Yeah, it's a heterogeneous cluster, which I'm trying to build on the lowest common arch. |
One would need to deeply integrate with multi-versioning... I will note that this is not package-image specific, but will also happen with package-compiler |
I suggest HostCPUFeatures.jl/src/cpu_info.jl Line 42 in cc4fe3d
HostCPUFeatures.jl/src/cpu_info.jl Line 65 in cc4fe3d
(maybe just delete the entire file/remove the include). And then simple call make_generic("broadwell") , or whatever the lowest common arch is.HostCPUFeatures.jl/src/cpu_info_x86.jl Line 68 in cc4fe3d
|
What if we do not run this code during precompilation? if ccall(:jl_generating_output, Cint, ()) == 0
# run code that should not run during precompile here
end Or we just move that call up to the top of the function? Perhaps I'm misunderstanding the issue. function __init__()
ccall(:jl_generating_output, Cint, ()) == 1 && return
if Sys.ARCH === :x86_64 || Sys.ARCH === :i686
target = Base.unsafe_string(Base.JLOptions().cpu_target)
occursin("native", target) || return make_generic(target)
end
BASELINE_CPU_NAME == Sys.CPU_NAME::String || redefine()
return nothing
end |
I'm not sure why this is after the HostCPUFeatures.jl/src/HostCPUFeatures.jl Lines 47 to 51 in cc4fe3d
|
Want to make a PR and bump the patch version? |
ok, give me a minute |
See #13 |
To reproduce:
JULIA_CPU_TARGET
to an earlier (but compatible) generation than the current processor (e.g. I'm on a skylake processor, but setJULIA_CPU_TARGET=broadwell
)https://docs.julialang.org/en/v1/devdocs/sysimg/#Specifying-multiple-system-image-targets
Unfortunately since this package is ultimately depended on by a huge number of packages, this completely breaks pkgimages for me
The text was updated successfully, but these errors were encountered: