Error requiring CuArrays from Flux

When I use the CuArrays, some warning always confuse me like,

using CuArrays
┌ Warning: Error requiring CuArrays from Flux:
│ LoadError: LoadError: UndefVarError: libcudnn not defined
│ Stacktrace:
│  [1] include at ./boot.jl:328 [inlined]
│  [2] include_relative(::Module, ::String) at ./loading.jl:1094
│  [3] include at ./Base.jl:31 [inlined]
│  [4] include(::String) at /home/liyaolyu/.julia/packages/Flux/qXNjB/src/cuda/cuda.jl:
1
│  [5] top-level scope at /home/liyaolyu/.julia/packages/Flux/qXNjB/src/cuda/cuda.jl:32
│  [6] include at ./boot.jl:328 [inlined]
│  [7] include_relative(::Module, ::String) at ./loading.jl:1094
│  [8] include at ./Base.jl:31 [inlined]
│  [9] include(::String) at /home/liyaolyu/.julia/packages/Flux/qXNjB/src/Flux.jl:1
│  [10] top-level scope at REPL[17]:1
│  [11] eval at ./boot.jl:330 [inlined]
│  [12] eval at /home/liyaolyu/.julia/packages/Flux/qXNjB/src/Flux.jl:1 [inlined]
│  [13] (::getfield(Flux, Symbol("##150#154")))() at /home/liyaolyu/.julia/packages/Req
uires/9Jse8/src/require.jl:67
│  [14] err(::getfield(Flux, Symbol("##150#154")), ::Module, ::String) at /home/liyaoly
u/.julia/packages/Requires/9Jse8/src/require.jl:38
│  [15] #149 at /home/liyaolyu/.julia/packages/Requires/9Jse8/src/require.jl:66 [inline
d]
│  [16] withpath(::getfield(Flux, Symbol("##149#153")), ::String) at /home/liyaolyu/.ju
lia/packages/Requires/9Jse8/src/require.jl:28
│  [17] (::getfield(Flux, Symbol("##148#152")))() at /home/liyaolyu/.julia/packages/Req
uires/9Jse8/src/require.jl:65
│  [18] #invokelatest#1 at ./essentials.jl:790 [inlined]
│  [19] invokelatest at ./essentials.jl:789 [inlined]
│  [20] #3 at /home/liyaolyu/.julia/packages/Requires/9Jse8/src/require.jl:19 [inlined]
│  [21] iterate at ./generator.jl:47 [inlined]
│  [22] collect_to!(::Array{Function,1}, ::Base.Generator{Array{Function,1},getfield(Re
quires, Symbol("##3#4"))}, ::Int64, ::Int64) at ./array.jl:651
│  [23] collect_to!(::Array{typeof(CUDAnative.cudaconvert),1}, ::Base.Generator{Array{F
unction,1},getfield(Requires, Symbol("##3#4"))}, ::Int64, ::Int64) at ./array.jl:659
│  [24] collect_to_with_first!(::Array{typeof(CUDAnative.cudaconvert),1}, ::Function, :
:Base.Generator{Array{Function,1},getfield(Requires, Symbol("##3#4"))}, ::Int64) at ./a
rray.jl:630
│  [25] _collect(::Array{Function,1}, ::Base.Generator{Array{Function,1},getfield(Requi
res, Symbol("##3#4"))}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:624
│  [26] map at ./array.jl:548 [inlined]
│  [27] loadpkg(::Base.PkgId) at /home/liyaolyu/.julia/packages/Requires/9Jse8/src/requ
ire.jl:19
│  [28] #invokelatest#1 at ./essentials.jl:790 [inlined]
│  [29] invokelatest at ./essentials.jl:789 [inlined]
│  [30] require(::Base.PkgId) at ./loading.jl:914
│  [31] require(::Module, ::Symbol) at ./loading.jl:906
│  [32] eval(::Module, ::Any) at ./boot.jl:330
│  [33] eval_user_input(::Any, ::REPL.REPLBackend) at /buildworker/worker/package_linux
64/build/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:86
│  [34] macro expansion at /buildworker/worker/package_linux64/build/usr/share/julia/st
dlib/v1.2/REPL/src/REPL.jl:118 [inlined]
│  [35] (::getfield(REPL, Symbol("##26#27")){REPL.REPLBackend})() at ./task.jl:268
│ in expression starting at /home/liyaolyu/.julia/packages/Flux/qXNjB/src/cuda/curnn.jl
:1
│ in expression starting at /home/liyaolyu/.julia/packages/Flux/qXNjB/src/cuda/cuda.jl:
26
└ @ Requires ~/.julia/packages/Requires/9Jse8/src/require.jl:40
1 Like

I also get this error when I run ]test Flux, even though ]test CuArrays completes successfully.

Turns out it’s fixed on the master:
https://github.com/FluxML/Flux.jl/issues/846

1 Like