Git Product home page Git Product logo

Comments (9)

maleadt avatar maleadt commented on July 19, 2024 1

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.

maleadt avatar maleadt commented on July 19, 2024

/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.

jcreinhold avatar jcreinhold commented on July 19, 2024

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.

maleadt avatar maleadt commented on July 19, 2024

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.

jcreinhold avatar jcreinhold commented on July 19, 2024

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.

maleadt avatar maleadt commented on July 19, 2024

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.

jcreinhold avatar jcreinhold commented on July 19, 2024

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.

jcreinhold avatar jcreinhold commented on July 19, 2024

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.

jcreinhold avatar jcreinhold commented on July 19, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.