-
-
Notifications
You must be signed in to change notification settings - Fork 235
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
Failed to precompile, load error #701
Comments
@chriselrod do you know what can cause this? |
@daammiix Earlier, I used CpuId.jl instead, which only supports Intel and AMD, but has been pretty reliable for them.
I'll only |
@daammiix I would like to know if you are in fact on an x86 cpu. If you are not, the changes I propose above will not help you. Mind showing me versioninfo() ? I'd also like to know if you're doing anything like running in a VM or similar basic details about your setup. It'd help me to know on which sorts of systems/setups CpuId doesn't work well. |
@chriselrod I am not running VM |
Could you show me the outputs of: using CpuId
cachesize()
cachelinesize()
cpucores()
using Hwloc
Hwloc.topology_load() |
@chriselrod |
Great, thanks. Now, does this work: using Hwloc
const TOPOLOGY = Hwloc.topology_load();
const CACHE = TOPOLOGY.children[1].children[1];
const COUNTS = Hwloc.histmap(TOPOLOGY);
# TODO: Makes topological assumptions that aren't right for
# multiple nodes or with >3 or <3 levels of Cache.
const CACHE_COUNT = (
COUNTS[:L1Cache],
COUNTS[:L2Cache],
COUNTS[:L3Cache],
COUNTS[:L4Cache]
)
const NUM_CORES = COUNTS[:Core]
const CACHE_LEVELS = something(findfirst(isequal(0), CACHE_COUNT) - 1, length(CACHE_COUNT) + 1)
function define_cache(N)
if N > CACHE_LEVELS
return (
size = nothing,
depth = nothing,
linesize = nothing,
associativity = nothing,
type = nothing
)
end
cache_name = (:L1Cache, :L2Cache, :L3Cache, :L4Cache)[N]
c = first(t for t in TOPOLOGY if t.type_ == cache_name && t.attr.depth == N).attr
(
size = c.size,
depth = c.depth,
linesize = c.linesize,
associativity = c.associativity,
type = c.type_
)
end
const L₁CACHE = define_cache(1)
const L₂CACHE = define_cache(2)
const L₃CACHE = define_cache(3)
const L₄CACHE = define_cache(4)
"""
L₁, L₂, L₃, L₄ cache size
"""
const CACHE_SIZE = (
L₁CACHE.size,
L₂CACHE.size,
L₃CACHE.size,
L₄CACHE.size
) ? |
@chriselrod |
I posted two code snippets. The first one also gave me that error, but I fixed it in the second. Can you confirm you get that with the second code snippet (the one I did not delete) gives you that error? |
@chriselrod |
Okay, thanks, I'll replace the code that caused your error in VectorizationBase with that and make a new release. I'll post here once that happens so you can update your packages and (assuming nothing else goes wrong) precompile DifferentialEquations. |
@chriselrod |
It's merged. Things should work after updating packages (on VectorizationBase 0.13.12+). |
@chriselrod |
[ Info: Precompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]
ERROR: LoadError: LoadError: type NullAttr has no field size
Stacktrace:
[1] getproperty at .\Base.jl:33 [inlined]
[2] define_cache(::Int64) at C:\Users\dimit.julia\packages\VectorizationBase\r2R5L\src\topology.jl:33
[3] top-level scope at C:\Users\dimit.julia\packages\VectorizationBase\r2R5L\src\topology.jl:43
[4] include(::Function, ::Module, ::String) at .\Base.jl:380
[5] include at .\Base.jl:368 [inlined]
[6] include(::String) at C:\Users\dimit.julia\packages\VectorizationBase\r2R5L\src\VectorizationBase.jl:1
[7] top-level scope at C:\Users\dimit.julia\packages\VectorizationBase\r2R5L\src\VectorizationBase.jl:275
[8] include(::Function, ::Module, ::String) at .\Base.jl:380
[9] include(::Module, ::String) at .\Base.jl:368
[10] top-level scope at none:2
[11] eval at .\boot.jl:331 [inlined]
[12] eval(::Expr) at .\client.jl:467
[13] top-level scope at .\none:3
in expression starting at C:\Users\dimit.julia\packages\VectorizationBase\r2R5L\src\topology.jl:43
in expression starting at C:\Users\dimit.julia\packages\VectorizationBase\r2R5L\src\VectorizationBase.jl:275
ERROR: LoadError: Failed to precompile VectorizationBase [3d5dd08c-fd9d-11e8-17fa-ed2836048c2f] to C:\Users\dimit.julia\compiled\v1.5\VectorizationBase\Dto5m_XBoBh.ji.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1305
[3] _require(::Base.PkgId) at .\loading.jl:1030
[4] require(::Base.PkgId) at .\loading.jl:928
[5] require(::Module, ::Symbol) at .\loading.jl:923
[6] include(::Function, ::Module, ::String) at .\Base.jl:380
[7] include(::Module, ::String) at .\Base.jl:368
[8] top-level scope at none:2
[9] eval at .\boot.jl:331 [inlined]
[10] eval(::Expr) at .\client.jl:467
[11] top-level scope at .\none:3
in expression starting at C:\Users\dimit.julia\packages\LoopVectorization\N0Zry\src\LoopVectorization.jl:7
ERROR: LoadError: LoadError: Failed to precompile LoopVectorization [bdcacae8-1622-11e9-2a5c-532679323890] to C:\Users\dimit.julia\compiled\v1.5\LoopVectorization\4TogI_XBoBh.ji.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1305
[3] _require(::Base.PkgId) at .\loading.jl:1030
[4] require(::Base.PkgId) at .\loading.jl:928
[5] require(::Module, ::Symbol) at .\loading.jl:923
[6] include(::Function, ::Module, ::String) at .\Base.jl:380
[7] include at .\Base.jl:368 [inlined]
[8] include(::String) at C:\Users\dimit.julia\packages\RecursiveFactorization\6qPb5\src\RecursiveFactorization.jl:1
[9] top-level scope at C:\Users\dimit.julia\packages\RecursiveFactorization\6qPb5\src\RecursiveFactorization.jl:3
[10] include(::Function, ::Module, ::String) at .\Base.jl:380
[11] include(::Module, ::String) at .\Base.jl:368
[12] top-level scope at none:2
[13] eval at .\boot.jl:331 [inlined]
[14] eval(::Expr) at .\client.jl:467
[15] top-level scope at .\none:3
in expression starting at C:\Users\dimit.julia\packages\RecursiveFactorization\6qPb5\src\lu.jl:1
in expression starting at C:\Users\dimit.julia\packages\RecursiveFactorization\6qPb5\src\RecursiveFactorization.jl:3
ERROR: LoadError: Failed to precompile RecursiveFactorization [f2c3362d-daeb-58d1-803e-2bc74f2840b4] to C:\Users\dimit.julia\compiled\v1.5\RecursiveFactorization\tEwl6_XBoBh.ji.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1305
[3] _require(::Base.PkgId) at .\loading.jl:1030
[4] require(::Base.PkgId) at .\loading.jl:928
[5] require(::Module, ::Symbol) at .\loading.jl:923
[6] include(::Function, ::Module, ::String) at .\Base.jl:380
[7] include(::Module, ::String) at .\Base.jl:368
[8] top-level scope at none:2
[9] eval at .\boot.jl:331 [inlined]
[10] eval(::Expr) at .\client.jl:467
[11] top-level scope at .\none:3
in expression starting at C:\Users\dimit.julia\packages\DiffEqBase\cuMMc\src\DiffEqBase.jl:3
ERROR: LoadError: Failed to precompile DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e] to C:\Users\dimit.julia\compiled\v1.5\DiffEqBase\oaevG_XBoBh.ji.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1305
[3] _require(::Base.PkgId) at .\loading.jl:1030
[4] require(::Base.PkgId) at .\loading.jl:928
[5] require(::Module, ::Symbol) at .\loading.jl:923
[6] include(::Function, ::Module, ::String) at .\Base.jl:380
[7] include(::Module, ::String) at .\Base.jl:368
[8] top-level scope at none:2
[9] eval at .\boot.jl:331 [inlined]
[10] eval(::Expr) at .\client.jl:467
[11] top-level scope at .\none:3
in expression starting at C:\Users\dimit.julia\packages\DifferentialEquations\fpohE\src\DifferentialEquations.jl:5
ERROR: Failed to precompile DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa] to C:\Users\dimit.julia\compiled\v1.5\DifferentialEquations\UQdwS_XBoBh.ji.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1305
[3] _require(::Base.PkgId) at .\loading.jl:1030
[4] require(::Base.PkgId) at .\loading.jl:928
[5] require(::Module, ::Symbol) at .\loading.jl:923
Can someone help with this?
The text was updated successfully, but these errors were encountered: