Comments (9)
Ah yeah, how did I miss that from your opening post, I actually debugged that a while ago too...
Should be fixed on latest CUDAapi, try pkg> add CUDAapi#master
(#61)
EDIT: to clarify, not shipping unversioned symlinks is totally OK, and we need to deal with it.
from cudaapi.jl.
/usr/lib64
should be discoverable by Libdl.find_library
(which is what CUDAapi.find_cuda_library
falls back to), especially when having set LD_LIBRARY_PATH
... What's the output of using Libdl; Libdl.find_library("libcudnn")
?
from cudaapi.jl.
Here is the output of Libdl.find_library("libcudnn")
without LD_LIBRARY_PATH
set to anything and with LD_LIBRARY_PATH
set to /usr/lib64
.
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.3 (2018-12-18)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> using Libdl
julia> find_library("libcudnn")
""
julia>
05:00:36 ~$ export LD_LIBRARY_PATH=/usr/lib64
05:00:48 ~$ julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.3 (2018-12-18)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> using Libdl
julia> find_library("libcudnn")
""
julia>
05:01:09 ~$ ls /usr/lib64 | grep -i libcud
libcuda.so
libcuda.so.1
libcuda.so.396.54
libcudnn.so.7
libcudnn.so.7.2.1
from cudaapi.jl.
This is starting to look like an issue with your set-up.
What does ldd /usr/lib64/libcudnn.so.7.2.1
give?
Please post the output of LD_DEBUG=libs julia -e 'using Libdl; find_library("libcudnn")'
from cudaapi.jl.
I wouldn't be surprised, thank you for your patience. Here is the output of ldd /usr/lib64/libcudnn.so.7.2.1
:
05:29:15 ~$ ldd /usr/lib64/libcudnn.so.7.2.1
linux-vdso.so.1 (0x00007ffe38ba9000)
librt.so.1 => /usr/lib64/librt.so.1 (0x00007fcd32468000)
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fcd3224a000)
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fcd32046000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fcd31cbe000)
libm.so.6 => /usr/lib64/libm.so.6 (0x00007fcd31973000)
libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007fcd3175c000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007fcd313a6000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcd43c05000)
Here is the output of the second command:
05:30:12 ~$ LD_DEBUG=libs julia -e 'using Libdl; find_library("libcudnn")'
1651: find library=libjulia.so.1 [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/tls/haswell/x86_64:/home/jacobr/code/julia-1.0.3/bin/../lib/tls/haswell:/home/jacobr/code/julia-1.0.3/bin/../lib/tls/x86_64:/home/jacobr/code/julia-1.0.3/bin/../lib/tls:/home/jacobr/code/julia-1.0.3/bin/../lib/haswell/x86_64:/home/jacobr/code/julia-1.0.3/bin/../lib/haswell:/home/jacobr/code/julia-1.0.3/bin/../lib/x86_64:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/tls/haswell/x86_64/libjulia.so.1
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/tls/haswell/libjulia.so.1
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/tls/x86_64/libjulia.so.1
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/tls/libjulia.so.1
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/haswell/x86_64/libjulia.so.1
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/haswell/libjulia.so.1
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/x86_64/libjulia.so.1
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1
1651:
1651: find library=libdl.so.2 [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libdl.so.2
1651: search path=/usr/lib64/tls/haswell/x86_64:/usr/lib64/tls/haswell:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/haswell/x86_64:/usr/lib64/haswell:/usr/lib64/x86_64:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/haswell/x86_64/libdl.so.2
1651: trying file=/usr/lib64/tls/haswell/libdl.so.2
1651: trying file=/usr/lib64/tls/x86_64/libdl.so.2
1651: trying file=/usr/lib64/tls/libdl.so.2
1651: trying file=/usr/lib64/haswell/x86_64/libdl.so.2
1651: trying file=/usr/lib64/haswell/libdl.so.2
1651: trying file=/usr/lib64/x86_64/libdl.so.2
1651: trying file=/usr/lib64/libdl.so.2
1651:
1651: find library=librt.so.1 [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/librt.so.1
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/librt.so.1
1651: trying file=/usr/lib64/librt.so.1
1651:
1651: find library=libpthread.so.0 [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libpthread.so.0
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libpthread.so.0
1651: trying file=/usr/lib64/libpthread.so.0
1651:
1651: find library=libc.so.6 [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libc.so.6
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libc.so.6
1651: trying file=/usr/lib64/libc.so.6
1651:
1651: find library=libLLVM-6.0.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/tls/haswell/x86_64:/home/jacobr/code/julia-1.0.3/bin/../lib/julia/tls/haswell:/home/jacobr/code/julia-1.0.3/bin/../lib/julia/tls/x86_64:/home/jacobr/code/julia-1.0.3/bin/../lib/julia/tls:/home/jacobr/code/julia-1.0.3/bin/../lib/julia/haswell/x86_64:/home/jacobr/code/julia-1.0.3/bin/../lib/julia/haswell:/home/jacobr/code/julia-1.0.3/bin/../lib/julia/x86_64:/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/tls/haswell/x86_64/libLLVM-6.0.so
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/tls/haswell/libLLVM-6.0.so
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/tls/x86_64/libLLVM-6.0.so
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/tls/libLLVM-6.0.so
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/haswell/x86_64/libLLVM-6.0.so
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/haswell/libLLVM-6.0.so
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/x86_64/libLLVM-6.0.so
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libLLVM-6.0.so
1651:
1651: find library=libstdc++.so.6 [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libstdc++.so.6
1651:
1651: find library=libm.so.6 [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libm.so.6
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libm.so.6
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libm.so.6
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libm.so.6
1651: trying file=/usr/lib64/libm.so.6
1651:
1651: find library=libgcc_s.so.1 [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libgcc_s.so.1
1651:
1651:
1651: calling init: /usr/lib64/libpthread.so.0
1651:
1651:
1651: calling init: /usr/lib64/libc.so.6
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libgcc_s.so.1
1651:
1651:
1651: calling init: /usr/lib64/libm.so.6
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libstdc++.so.6
1651:
1651:
1651: calling init: /usr/lib64/libdl.so.2
1651:
1651:
1651: calling init: /usr/lib64/librt.so.1
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libLLVM-6.0.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1
1651:
1651:
1651: initialize program: julia
1651:
1651:
1651: transferring control: julia
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/lib/julia/sys.so
1651:
1651: find library=libpcre2-8 [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libpcre2-8
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libpcre2-8
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libpcre2-8
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libpcre2-8
1651: trying file=/usr/lib64/libpcre2-8
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls/haswell/x86_64:/lib64/tls/haswell:/lib64/tls/x86_64:/lib64/tls:/lib64/haswell/x86_64:/lib64/haswell:/lib64/x86_64:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/haswell/x86_64/libpcre2-8
1651: trying file=/lib64/tls/haswell/libpcre2-8
1651: trying file=/lib64/tls/x86_64/libpcre2-8
1651: trying file=/lib64/tls/libpcre2-8
1651: trying file=/lib64/haswell/x86_64/libpcre2-8
1651: trying file=/lib64/haswell/libpcre2-8
1651: trying file=/lib64/x86_64/libpcre2-8
1651: trying file=/lib64/libpcre2-8
1651: trying file=/usr/lib64/tls/libpcre2-8
1651: trying file=/usr/lib64/libpcre2-8
1651:
1651: find library=libpcre2-8.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libpcre2-8.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libpcre2-8.so
1651:
1651: find library=libgmp [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libgmp
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libgmp
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libgmp
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libgmp
1651: trying file=/usr/lib64/libgmp
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/libgmp
1651: trying file=/lib64/libgmp
1651: trying file=/usr/lib64/tls/libgmp
1651: trying file=/usr/lib64/libgmp
1651:
1651: find library=libgmp.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libgmp.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libgmp.so
1651:
1651: find library=libmpfr [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libmpfr
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libmpfr
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libmpfr
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libmpfr
1651: trying file=/usr/lib64/libmpfr
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/libmpfr
1651: trying file=/lib64/libmpfr
1651: trying file=/usr/lib64/tls/libmpfr
1651: trying file=/usr/lib64/libmpfr
1651:
1651: find library=libmpfr.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libmpfr.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libmpfr.so
1651:
1651: find library=libdSFMT [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libdSFMT
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libdSFMT
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libdSFMT
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libdSFMT
1651: trying file=/usr/lib64/libdSFMT
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/libdSFMT
1651: trying file=/lib64/libdSFMT
1651: trying file=/usr/lib64/tls/libdSFMT
1651: trying file=/usr/lib64/libdSFMT
1651:
1651: find library=libdSFMT.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libdSFMT.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libdSFMT.so
1651:
1651: find library=libopenblas64_ [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libopenblas64_
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libopenblas64_
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libopenblas64_
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libopenblas64_
1651: trying file=/usr/lib64/libopenblas64_
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/libopenblas64_
1651: trying file=/lib64/libopenblas64_
1651: trying file=/usr/lib64/tls/libopenblas64_
1651: trying file=/usr/lib64/libopenblas64_
1651:
1651: find library=libopenblas64_.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libopenblas64_.so
1651:
1651: find library=libgfortran.so.4 [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libgfortran.so.4
1651:
1651: find library=libquadmath.so.0 [0]; searching
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libquadmath.so.0
1651: trying file=/usr/lib64/libquadmath.so.0
1651:
1651:
1651: calling init: /usr/lib64/libquadmath.so.0
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libgfortran.so.4
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libopenblas64_.so
1651:
1651: find library=libcholmod [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcholmod
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libcholmod
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libcholmod
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libcholmod
1651: trying file=/usr/lib64/libcholmod
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/libcholmod
1651: trying file=/lib64/libcholmod
1651: trying file=/usr/lib64/tls/libcholmod
1651: trying file=/usr/lib64/libcholmod
1651:
1651: find library=libcholmod.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcholmod.so
1651:
1651: find library=libcolamd.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcolamd.so
1651:
1651: find library=libamd.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libamd.so
1651:
1651: find library=libcamd.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcamd.so
1651:
1651: find library=libccolamd.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libccolamd.so
1651:
1651: find library=libsuitesparseconfig.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libsuitesparseconfig.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libsuitesparseconfig.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libccolamd.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcamd.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libamd.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcolamd.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcholmod.so
1651:
1651: find library=libcholmod [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcholmod
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libcholmod
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libcholmod
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libcholmod
1651: trying file=/usr/lib64/libcholmod
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/libcholmod
1651: trying file=/lib64/libcholmod
1651: trying file=/usr/lib64/tls/libcholmod
1651: trying file=/usr/lib64/libcholmod
1651:
1651: find library=libsuitesparse_wrapper [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libsuitesparse_wrapper
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libsuitesparse_wrapper
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libsuitesparse_wrapper
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libsuitesparse_wrapper
1651: trying file=/usr/lib64/libsuitesparse_wrapper
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/libsuitesparse_wrapper
1651: trying file=/lib64/libsuitesparse_wrapper
1651: trying file=/usr/lib64/tls/libsuitesparse_wrapper
1651: trying file=/usr/lib64/libsuitesparse_wrapper
1651:
1651: find library=libsuitesparse_wrapper.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libsuitesparse_wrapper.so
1651:
1651: find library=libumfpack.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libumfpack.so
1651:
1651: find library=libspqr.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libspqr.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libspqr.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libumfpack.so
1651:
1651:
1651: calling init: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libsuitesparse_wrapper.so
1651:
1651: find library=libsuitesparseconfig [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libsuitesparseconfig
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libsuitesparseconfig
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libsuitesparseconfig
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libsuitesparseconfig
1651: trying file=/usr/lib64/libsuitesparseconfig
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/libsuitesparseconfig
1651: trying file=/lib64/libsuitesparseconfig
1651: trying file=/usr/lib64/tls/libsuitesparseconfig
1651: trying file=/usr/lib64/libsuitesparseconfig
1651:
1651: find library=libcudnn [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcudnn
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libcudnn
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libcudnn
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libcudnn
1651: trying file=/usr/lib64/libcudnn
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/libcudnn
1651: trying file=/lib64/libcudnn
1651: trying file=/usr/lib64/tls/libcudnn
1651: trying file=/usr/lib64/libcudnn
1651:
1651: find library=libcudnn.so [0]; searching
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib/julia:/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcudnn.so
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libcudnn.so
1651: search path=/home/jacobr/code/julia-1.0.3/bin/../lib (RPATH from file julia)
1651: trying file=/home/jacobr/code/julia-1.0.3/bin/../lib/libcudnn.so
1651: search path=/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/usr/lib64/tls/libcudnn.so
1651: trying file=/usr/lib64/libcudnn.so
1651: search cache=/etc/ld.so.cache
1651: search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64 (system search path)
1651: trying file=/lib64/tls/libcudnn.so
1651: trying file=/lib64/libcudnn.so
1651: trying file=/usr/lib64/tls/libcudnn.so
1651: trying file=/usr/lib64/libcudnn.so
1651:
1651:
1651: calling fini: julia [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/lib/julia/sys.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/libjulia.so.1 [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libLLVM-6.0.so [0]
1651:
1651:
1651: calling fini: /usr/lib64/librt.so.1 [0]
1651:
1651:
1651: calling fini: /usr/lib64/libdl.so.2 [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libpcre2-8.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libmpfr.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libgmp.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libdSFMT.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libsuitesparse_wrapper.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libumfpack.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libspqr.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcholmod.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libccolamd.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcamd.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libamd.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libcolamd.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libsuitesparseconfig.so [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libopenblas64_.so [0]
1651:
1651:
1651: calling fini: /usr/lib64/libpthread.so.0 [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libgfortran.so.4 [0]
1651:
1651:
1651: calling fini: /usr/lib64/libquadmath.so.0 [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libstdc++.so.6 [0]
1651:
1651:
1651: calling fini: /home/jacobr/code/julia-1.0.3/bin/../lib/julia/libgcc_s.so.1 [0]
1651:
1651:
1651: calling fini: /usr/lib64/libm.so.6 [0]
1651:
from cudaapi.jl.
OK, so you can see that the linker properly finds and tries /usr/lib64/libcudnn.so
. Is it (a correct symlink to) an actual library? If so, try running with LD_DEBUG=all
and looking around the line that says trying file=/usr/lib64/libcudnn.so
why it decides not to load the library.
from cudaapi.jl.
Is the problem just that there does not exist a symlink for libcudnn.so
in /usr/lib64
?
05:41:55 ~$ ls -la /usr/lib64/ | grep -i libcud
lrwxrwxrwx. 1 root root 17 Aug 28 03:02 libcuda.so -> libcuda.so.396.54
lrwxrwxrwx. 1 root root 17 Aug 28 03:02 libcuda.so.1 -> libcuda.so.396.54
-rwxr-xr-x. 1 root root 14074232 Aug 15 02:17 libcuda.so.396.54
lrwxrwxrwx. 1 root root 17 Jul 31 04:16 libcudnn.so.7 -> libcudnn.so.7.2.1
-rwxr-xr-x. 1 root root 288585696 Aug 28 05:15 libcudnn.so.7.2.1
from cudaapi.jl.
Even when I add CUDAapi#master
, I still am not able to detect libcudnn
(if I am calling the commands correctly). See this code block:
(v1.0) pkg> add CUDAapi#master
Cloning default registries into /home/jacobr/.julia/registries
Cloning registry General from "https://github.com/JuliaRegistries/General.git"
Cloning git-repo `https://github.com/JuliaGPU/CUDAapi.jl.git`
Updating git-repo `https://github.com/JuliaGPU/CUDAapi.jl.git`
Resolving package versions...
Updating `~/.julia/environments/v1.0/Project.toml`
[3895d2a7] + CUDAapi v0.5.3+ #master (https://github.com/JuliaGPU/CUDAapi.jl.git)
Updating `~/.julia/environments/v1.0/Manifest.toml`
[3895d2a7] + CUDAapi v0.5.3+ #master (https://github.com/JuliaGPU/CUDAapi.jl.git)
[8f399da3] + Libdl
[56ddb016] + Logging
julia> using CUDAapi
[ Info: Precompiling CUDAapi [3895d2a7-ec45-59b8-82bb-cfc6a382f9b3]
julia> find_cuda_library("libcudnn")
Question: Looking at the commit in (#61) and this line in master, if would appear that v"7.2"
is not in the list. My libcudnn.so
ends with 7.2.1
. Presumably that relates to version 7.2. Could this be an issue? I didn't read the code carefully to see how that was used, so perhaps not.
from cudaapi.jl.
You can ignore the last comment because I called find_cuda_library
incorrectly. When I run find_cuda_library
with "cudnn"
as the argument, I receive:
julia> find_cuda_library("cudnn")
"/usr/lib64/libcudnn.so.7"
which seems to be promising/fix the problem as described for CUDAapi. This was additionally verified by fixing the original problem (listed in the original discussion since CuArrays now correctly finds libcudnn. This is seen in CuArrays/deps/ext.jl:
# autogenerated file, do not edit
const libcufft = "/usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so"
const libcublas = "/usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so"
const configured = true
const libcusolver = "/usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so"
const libcurand = "/usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so"
const libcudnn = "/usr/lib64/libcudnn.so.7"
Closing the issue. Thank you very much for the help and thanks for all the awesome work
from cudaapi.jl.
Related Issues (20)
- Remove warning HOT 3
- @runtime_ccall thread safety HOT 5
- find_cuda_library("cudnn",tk) returns nothing HOT 4
- could not load library: "C:\Users\USER\.julia\artifacts\~~~\bin\cudnn64_7.dll" HOT 2
- Could not find nvToolsExt (libnvToolsExt.dylib.1.0 or libnvToolsExt.dylib.1) in /Users/imac/.julia/artifacts/b502baf54095dff4a69fd6aba8667124583f6929/lib HOT 1
- ERROR: Could not find a suitable GCC HOT 4
- Cannot find cuDNN that was installed via anaconda (without sudo) HOT 4
- Fix hardcoded CUDA versions to folder name autodetection? HOT 2
- macOS CI for CUDA 10+ HOT 1
- CI does not spot: libcudadevrt.lib is actually cudadevrt.lib on windows HOT 4
- find_library word_size
- Longer term goal with other CUDA libraries HOT 4
- Finding 8.0 files instead of 10.1 ones HOT 5
- CUDA discovery failing with 1.3.0-rc1 HOT 1
- Discovery fails if CUDA env vars are set to empty variable HOT 2
- Float64 HOT 1
- CUDA version warning throws MethodError: no method matching version()
- Sort paths from CUDAapi.find_toolkit() in the descending order? HOT 2
- find_host_compiler was removed, but is still exported
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cudaapi.jl.