“/sbin/ldconfig.real : /usr/local/cuda/lib64/libcudnn.so.7이 심볼릭 링크가 아닙니다”라는 이유는 무엇입니까?


12

CUDA툴킷을 설치 하고 cuDNN문제없이 성공적으로 수행 한 후 :

sudo ldconfig 

나는 :

/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link

에러 메시지.
이유는 무엇이며 어떻게 해결할 수 있습니까?

그건 그렇고, 나는 cuDNN다음과 같이 설치 했다 :

 # cuDNN, extracts to a folder named cuda
 tar xvf cudnn*.tgz  
 cd cuda  
 sudo cp lib64/* /usr/local/cuda/lib64
 sudo cp include/* /usr/local/cuda/include

ls -lha libcudnn*in 의 출력은 /usr/local/cuda/lib64다음과 같습니다.

breeze@breeze:/usr/local/cuda/lib64$ ls -lha libcudnn*
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so.7
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so.7.0.5
-rw-r--r-- 1 root root 268M آوریل 15 12:03 libcudnn_static.a

답변:


17

하나님 께 감사 드리며이 링크를 사용하여 해결책을 찾았 습니다 .

cuDNN 파일을 복사 한 후 sudo ldconfig를 실행할 때 발생할 수 있습니다.

cuDNN압축을 푼 파일을 설치 /usr/lib/cuda/lib64하고 심볼릭 링크를 생성 한 후 심볼릭 링크에 문제가 발생할 수 있습니다.

그래서 가서 /usr/local/cuda/lib64/실행하십시오 ls -lha libcudnn*.

두 개의 심볼릭 링크 (굵은 청록색)와 하나의 단일 파일이 표시됩니다. 이 같은:

/usr/local/cuda/lib64$ ls -lha libcudnn*
lrwxrwxrwx 1 root root  13 Dez 25 23:56 libcudnn.so -> libcudnn.so.5
lrwxrwxrwx 1 root root  17 Dez 25 23:55 libcudnn.so.5 -> libcudnn.so.5.1.5
-rwxr-xr-x 1 root root 76M Dez 25 23:27 libcudnn.so.5.1.5

libcudnn.so.5.1.5의 정확한 버전은 약간 다를 수도 있습니다 (libcudnn.so.5.1.10). 이 경우 코드를 적절하게 조정하십시오.

경우 libcudnn.solibcudnn.so.5다음 심볼릭 링크되지 않은이이 오류가있어 이유입니다. 그렇다면 다음을 수행해야합니다.

/usr/local/cuda/lib64$ sudo rm libcudnn.so
/usr/local/cuda/lib64$ sudo rm libcudnn.so.5
/usr/local/cuda/lib64$ sudo ln libcudnn.so.5.1.5 libcudnn.so.5
/usr/local/cuda/lib64$ sudo ln libcudnn.so.5 libcudnn.so
Run sudo ldconfig again and there should be no errors

ls -lha libcudnn*in을 실행하고 확인한 후 /usr/local/cuda/lib64:

breeze@breeze:/usr/local/cuda/lib64$ ls -lha libcudnn*
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so.7
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so.7.0.5
-rw-r--r-- 1 root root 268M آوریل 15 12:03 libcudnn_static.a

나는해야했다 :

breeze@breeze:/usr/local/cuda/lib64$ sudo rm libcudnn.so
[sudo] password for breeze: 
breeze@breeze:/usr/local/cuda/lib64$ sudo rm libcudnn.so.7
breeze@breeze:/usr/local/cuda/lib64$ sudo ln libcudnn.so.7.0.5 libcudnn.so.7
breeze@breeze:/usr/local/cuda/lib64$ sudo ln libcudnn.so.7 libcudnn.so
breeze@breeze:/usr/local/cuda/lib64$ sudo ldconfig

그리고 모든 것이 정상으로 돌아 왔습니다 :)


4
기술적으로 오류 메시지에서 언급 한 것처럼, 심볼 링크는 대답에서 제안 된대로 단순히 'ln'대신 'ln -s'로 작성되어 하드 링크를 생성합니다.
Giorgos Sfikas

3

검사

wxf:/usr/local/cuda/lib64$ ls -al libcudnn.so*
...
...
-rwxr-xr-x  3 root root 302770160 Jan 27 14:30 libcudnn.so          NO link
-rwxr-xr-x  3 root root 302770160 Jan 27 14:30 libcudnn.so.7        NO link
-rwxr-xr-x  3 root root 302770160 Jan 27 14:30 libcudnn.so.7.3.1
-rwxr-xr-x  1 root root 349141232 Jan 27 14:30 libcudnn.so.7.4.2
...
...

링크가 없습니다 ->

(모든 링크를 확인하십시오 sudo ldconfig -v)

때문에

(nvidia에서 다운로드 한 cudnn에는 기호 링크가 있습니다)

wxf:~/cudnn/cuda/lib64$ ls -al
total 974632
drwxrwxr-x 2 wxf wxf      4096 Jan 19 19:50 .
drwxrwxr-x 4 wxf wxf      4096 Jan 19 19:50 ..
lrwxrwxrwx 1 wxf wxf        13 Dec 12 01:58 libcudnn.so -> libcudnn.so.7
lrwxrwxrwx 1 wxf wxf        17 Dec 12 01:58 libcudnn.so.7 -> libcudnn.so.7.4.2
-rwxrwxr-x 1 wxf wxf 302770160 Sep 21 01:36 libcudnn.so.7.3.1
-rwxrwxr-x 1 wxf wxf 349141232 Dec 12 01:30 libcudnn.so.7.4.2
-rw-rw-r-- 1 wxf wxf 346085818 Dec 12 01:30 libcudnn_static.a

복사 할 때 상징적 인 정보를 잃어 버렸습니다.

메모: ln -s A <-- B

이동 /usr/local/cuda/lib64

sudo ln -sf libcudnn.so.7.4.2 libcudnn.so.7

sudo ln -sf libcudnn.so.7 libcudnn.so

지금,

wxf:/usr/local/cuda/lib64$ ls -al libcudnn.so*
...
...
lrwxrwxrwx  1 root root        13 Jan 27 14:43 libcudnn.so -> libcudnn.so.7
lrwxrwxrwx  1 root root        17 Jan 27 14:43 libcudnn.so.7 -> libcudnn.so.7.4.2
-rwxr-xr-x  1 root root 302770160 Jan 27 14:30 libcudnn.so.7.3.1
-rwxr-xr-x  1 root root 349141232 Jan 27 14:30 libcudnn.so.7.4.2
...

여기에 무슨 일이 일어나고 있는지 그리고 왜 그렇게 고마워하는지에 대한 설명
Rika
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.