Flux.jl: Failed to precompile Flux

Created on 3 Nov 2019  ·  4Comments  ·  Source: FluxML/Flux.jl

(v1.4) pkg> add Flux#master
  Updating git-repo `https://github.com/FluxML/Flux.jl.git`
  Updating registry at `C:\Users\yahyaaba\.julia\registries\General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
 Installed ZygoteRules ─ v0.1.0
 Installed Zygote ────── v0.3.0
  Updating `C:\Users\yahyaaba\.julia\environments\v1.4\Project.toml`
  [587475ba] + Flux v0.9.0 #master (https://github.com/FluxML/Flux.jl.git)
  Updating `C:\Users\yahyaaba\.julia\environments\v1.4\Manifest.toml`     
  [621f4979] + AbstractFFTs v0.4.1
  [79e6a3ab] + Adapt v1.0.0  
  [fa961155] + CEnum v0.2.0  
  [3895d2a7] + CUDAapi v1.2.0
  [c5f51814] + CUDAdrv v3.1.0   
  [be33ccc6] + CUDAnative v2.4.0
  [944b1d66] + CodecZlib v0.6.0
  [bbf7d656] + CommonSubexpressions v0.2.0
  [3a865a2d] + CuArrays v1.2.1   
  [163ba53b] + DiffResults v0.0.4
  [b552c78f] + DiffRules v0.0.10
  [7a1cc6ca] + FFTW v1.0.1
  [587475ba] + Flux v0.9.0 #master (https://github.com/FluxML/Flux.jl.git)
  [f6369f11] + ForwardDiff v0.10.4
  [0c68f7d7] + GPUArrays v1.0.4   
  [7869d1d1] + IRTools v0.3.0
  [929cbde3] + LLVM v1.3.1   
  [872c559c] + NNlib v0.6.0
  [276daf66] + SpecialFunctions v0.8.0
  [a759f4b9] + TimerOutputs v0.5.0
  [3bb67fe8] + TranscodingStreams v0.9.5
  [e88e6eb3] + Zygote v0.3.0
  [700de1a5] + ZygoteRules v0.1.0

julia> using Flux
[ Info: Precompiling Flux [587475ba-b771-5e3f-ad9e-33799f191a9c]
ERROR: LoadError: LoadError: UndefVarError: Argument not defined
Stacktrace:
 [1] include(::Module, ::String) at .\Base.jl:377
 [2] include(::String) at C:\Users\yahyaaba\.julia\packages\Zygote\kTgN8\src\Zygote.jl:1
 [3] top-level scope at C:\Users\yahyaaba\.julia\packages\Zygote\kTgN8\src\Zygote.jl:24
 [4] include(::Module, ::String) at .\Base.jl:377
 [5] top-level scope at none:2
 [6] eval at .\boot.jl:331 [inlined]
 [7] eval(::Expr) at .\client.jl:457
 [8] top-level scope at .\none:3
in expression starting at C:\Users\yahyaaba\.julia\packages\Zygote\kTgN8\src\compiler\reverse.jl:1
in expression starting at C:\Users\yahyaaba\.julia\packages\Zygote\kTgN8\src\Zygote.jl:24
ERROR: LoadError: Failed to precompile Zygote [e88e6eb3-aa80-5325-afca-941959d7151f] to C:\Users\yahyaaba\.julia\compiled\v1.4\Zygote\4kbLI_sunf5.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1263
 [3] _require(::Base.PkgId) at .\loading.jl:1022
 [4] require(::Base.PkgId) at .\loading.jl:920
 [5] require(::Module, ::Symbol) at .\loading.jl:915
 [6] include(::Module, ::String) at .\Base.jl:377
 [7] top-level scope at none:2
 [8] eval at .\boot.jl:331 [inlined]
 [9] eval(::Expr) at .\client.jl:457
 [10] top-level scope at .\none:3
in expression starting at C:\Users\yahyaaba\.julia\packages\Flux\E2wBe\src\Flux.jl:6
ERROR: Failed to precompile Flux [587475ba-b771-5e3f-ad9e-33799f191a9c] to C:\Users\yahyaaba\.julia\compiled\v1.4\Flux\QdkVy_sunf5.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1263
 [3] _require(::Base.PkgId) at .\loading.jl:1022
 [4] require(::Base.PkgId) at .\loading.jl:920
 [5] require(::Module, ::Symbol) at .\loading.jl:915

Same happens for the last registered version:

(v1.4) pkg> add Flux
 Resolving package versions...
 Installed Flux ──── v0.9.0
 Installed Tracker ─ v0.2.3
  Updating `C:\Users\yahyaaba\.julia\environments\v1.4\Project.toml`
  [587475ba] + Flux v0.9.0
  Updating `C:\Users\yahyaaba\.julia\environments\v1.4\Manifest.toml`
  [621f4979] + AbstractFFTs v0.4.1
  [79e6a3ab] + Adapt v1.0.0
  [fa961155] + CEnum v0.2.0
  [3895d2a7] + CUDAapi v1.2.0
  [c5f51814] + CUDAdrv v3.1.0
  [be33ccc6] + CUDAnative v2.4.0
  [944b1d66] + CodecZlib v0.6.0
  [bbf7d656] + CommonSubexpressions v0.2.0
  [3a865a2d] + CuArrays v1.2.1
  [163ba53b] + DiffResults v0.0.4
  [b552c78f] + DiffRules v0.0.10
  [7a1cc6ca] + FFTW v1.0.1
  [587475ba] + Flux v0.9.0
  [f6369f11] + ForwardDiff v0.10.4
  [0c68f7d7] + GPUArrays v1.0.4
  [929cbde3] + LLVM v1.3.1
  [872c559c] + NNlib v0.6.0
  [276daf66] + SpecialFunctions v0.8.0
  [a759f4b9] + TimerOutputs v0.5.0
  [9f7883ad] + Tracker v0.2.3
  [3bb67fe8] + TranscodingStreams v0.9.5

julia> using Flux
[ Info: Precompiling Flux [587475ba-b771-5e3f-ad9e-33799f191a9c]
ERROR: LoadError: LoadError: UndefVarError: Printf not defined
Stacktrace:
 [1] getproperty(::Module, ::Symbol) at .\Base.jl:26
 [2] top-level scope at C:\Users\yahyaaba\.julia\packages\Tracker\SAr25\src\lib\real.jl:57
 [3] include(::Module, ::String) at .\Base.jl:377
 [4] include(::String) at C:\Users\yahyaaba\.julia\packages\Tracker\SAr25\src\Tracker.jl:1
 [5] top-level scope at C:\Users\yahyaaba\.julia\packages\Tracker\SAr25\src\Tracker.jl:68
 [6] include(::Module, ::String) at .\Base.jl:377
 [7] top-level scope at none:2
 [8] eval at .\boot.jl:331 [inlined]
 [9] eval(::Expr) at .\client.jl:457
 [10] top-level scope at .\none:3
in expression starting at C:\Users\yahyaaba\.julia\packages\Tracker\SAr25\src\lib\real.jl:57
in expression starting at C:\Users\yahyaaba\.julia\packages\Tracker\SAr25\src\Tracker.jl:68
ERROR: LoadError: Failed to precompile Tracker [9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c] to C:\Users\yahyaaba\.julia\compiled\v1.4\Tracker\cI3wW_sunf5.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1263
 [3] _require(::Base.PkgId) at .\loading.jl:1022
 [4] require(::Base.PkgId) at .\loading.jl:920
 [5] require(::Module, ::Symbol) at .\loading.jl:915
 [6] include(::Module, ::String) at .\Base.jl:377
 [7] top-level scope at none:2
 [8] eval at .\boot.jl:331 [inlined]
 [9] eval(::Expr) at .\client.jl:457
 [10] top-level scope at .\none:3
in expression starting at C:\Users\yahyaaba\.julia\packages\Flux\dkJUV\src\Flux.jl:16
ERROR: Failed to precompile Flux [587475ba-b771-5e3f-ad9e-33799f191a9c] to C:\Users\yahyaaba\.julia\compiled\v1.4\Flux\QdkVy_sunf5.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1263
 [3] _require(::Base.PkgId) at .\loading.jl:1022
 [4] require(::Base.PkgId) at .\loading.jl:920
 [5] require(::Module, ::Symbol) at .\loading.jl:915

Most helpful comment

I'm not sure it's related, but pre-compilation also fails for me (in a different way) when CuArrays and Flux both are on master:

(v1.2) pkg> status Flux
    Status `~/.julia/environments/v1.2/Project.toml`
  [5ae59095] Colors v0.9.6
  [3a865a2d] CuArrays v1.3.0 #master (https://github.com/JuliaGPU/CuArrays.jl.git)
  [587475ba] Flux v0.9.0 #master (https://github.com/FluxML/Flux.jl.git)
  [e5e0dc1b] Juno v0.7.2
  [872c559c] NNlib v0.6.0 #master (https://github.com/FluxML/NNlib.jl.git)
  [189a3867] Reexport v0.2.0
  [2913bbd2] StatsBase v0.32.0
  [e88e6eb3] Zygote v0.3.4 #master (https://github.com/FluxML/Zygote.jl.git)
  [700de1a5] ZygoteRules v0.2.0 #master (https://github.com/FluxML/ZygoteRules.jl.git)

julia> using Flux
[ Info: Precompiling Flux [587475ba-b771-5e3f-ad9e-33799f191a9c]
ERROR: LoadError: LoadError: UndefVarError: libcudnn not defined
Stacktrace:
 [1] getproperty(::Module, ::Symbol) at ./Base.jl:13
 [2] top-level scope at /home/troels/.julia/packages/Flux/E2wBe/src/cuda/cuda.jl:5
 [3] include at ./boot.jl:328 [inlined]
 [4] include_relative(::Module, ::String) at ./loading.jl:1094
 [5] include at ./Base.jl:31 [inlined]
 [6] include(::String) at /home/troels/.julia/packages/Flux/E2wBe/src/Flux.jl:1
 [7] top-level scope at /home/troels/.julia/packages/Flux/E2wBe/src/Flux.jl:53
 [8] include at ./boot.jl:328 [inlined]
 [9] include_relative(::Module, ::String) at ./loading.jl:1094
 [10] include(::Module, ::String) at ./Base.jl:31
 [11] top-level scope at none:2
 [12] eval at ./boot.jl:330 [inlined]
 [13] eval(::Expr) at ./client.jl:432
 [14] top-level scope at ./none:3
in expression starting at /home/troels/.julia/packages/Flux/E2wBe/src/cuda/cuda.jl:5
in expression starting at /home/troels/.julia/packages/Flux/E2wBe/src/Flux.jl:52
ERROR: Failed to precompile Flux [587475ba-b771-5e3f-ad9e-33799f191a9c] to /home/troels/.julia/compiled/v1.2/Flux/QdkVy.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1253
 [3] _require(::Base.PkgId) at ./loading.jl:1013
 [4] require(::Base.PkgId) at ./loading.jl:911
 [5] require(::Module, ::Symbol) at ./loading.jl:906

If my understanding is correct, at least this issue is to be addressed by #916...

All 4 comments

I'm not sure it's related, but pre-compilation also fails for me (in a different way) when CuArrays and Flux both are on master:

(v1.2) pkg> status Flux
    Status `~/.julia/environments/v1.2/Project.toml`
  [5ae59095] Colors v0.9.6
  [3a865a2d] CuArrays v1.3.0 #master (https://github.com/JuliaGPU/CuArrays.jl.git)
  [587475ba] Flux v0.9.0 #master (https://github.com/FluxML/Flux.jl.git)
  [e5e0dc1b] Juno v0.7.2
  [872c559c] NNlib v0.6.0 #master (https://github.com/FluxML/NNlib.jl.git)
  [189a3867] Reexport v0.2.0
  [2913bbd2] StatsBase v0.32.0
  [e88e6eb3] Zygote v0.3.4 #master (https://github.com/FluxML/Zygote.jl.git)
  [700de1a5] ZygoteRules v0.2.0 #master (https://github.com/FluxML/ZygoteRules.jl.git)

julia> using Flux
[ Info: Precompiling Flux [587475ba-b771-5e3f-ad9e-33799f191a9c]
ERROR: LoadError: LoadError: UndefVarError: libcudnn not defined
Stacktrace:
 [1] getproperty(::Module, ::Symbol) at ./Base.jl:13
 [2] top-level scope at /home/troels/.julia/packages/Flux/E2wBe/src/cuda/cuda.jl:5
 [3] include at ./boot.jl:328 [inlined]
 [4] include_relative(::Module, ::String) at ./loading.jl:1094
 [5] include at ./Base.jl:31 [inlined]
 [6] include(::String) at /home/troels/.julia/packages/Flux/E2wBe/src/Flux.jl:1
 [7] top-level scope at /home/troels/.julia/packages/Flux/E2wBe/src/Flux.jl:53
 [8] include at ./boot.jl:328 [inlined]
 [9] include_relative(::Module, ::String) at ./loading.jl:1094
 [10] include(::Module, ::String) at ./Base.jl:31
 [11] top-level scope at none:2
 [12] eval at ./boot.jl:330 [inlined]
 [13] eval(::Expr) at ./client.jl:432
 [14] top-level scope at ./none:3
in expression starting at /home/troels/.julia/packages/Flux/E2wBe/src/cuda/cuda.jl:5
in expression starting at /home/troels/.julia/packages/Flux/E2wBe/src/Flux.jl:52
ERROR: Failed to precompile Flux [587475ba-b771-5e3f-ad9e-33799f191a9c] to /home/troels/.julia/compiled/v1.2/Flux/QdkVy.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1253
 [3] _require(::Base.PkgId) at ./loading.jl:1013
 [4] require(::Base.PkgId) at ./loading.jl:911
 [5] require(::Module, ::Symbol) at ./loading.jl:906

If my understanding is correct, at least this issue is to be addressed by #916...

You should use the provided Manifest; you're probably using an incompatible version of IRTools here. This should be better after https://github.com/FluxML/Flux.jl/pull/920 though. libcudnn failure is fixed with https://github.com/FluxML/Flux.jl/pull/916.

Sorry, didn't see the failure about the registered version. You're using Julia v1.4 though, better to use a released version of Julia (even the Flux master branch doesn't support v1.4).

@maleadt Yes, it works on 1.3 RC-4. Thank you!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ssfrr picture ssfrr  ·  5Comments

davidljung picture davidljung  ·  4Comments

logankilpatrick picture logankilpatrick  ·  6Comments

tejank10 picture tejank10  ·  6Comments

KristofferC picture KristofferC  ·  4Comments