개발 이야기/머신러닝, 딥러닝
[문제해결] Linux Cudnn 설치 시 ldconfig.real: libcudnn.so.8 is not a symbolic link
AI 동키
2021. 8. 10. 10:00
반응형
아래 링크의 블로그를 보며 Cudnn을 설치 하던 중 오류가 발생하여 해결한 솔루션을 남긴다.
https://webnautes.tistory.com/1479
설치환경
Ubuntu 20.04 WSL2
CUDA 11.4
Cudnn 8.2.2
문제
Cudnn을 다운받아 압축을 풀고, 복사 한후 경로 설정을 해 주고나서
sudo ldconfig을 치면 다음과 같은 오류가 발생
$ sudo ldconfig
/sbin/ldconfig.real: /usr/local/cuda/targets/x86_64-linux/lib/libcudnn.so.8 is not a symbolic link
해결
이는 Cudnn 카피 시 Symbolic link가 사라지기 때문임. 이를 다시 설정해주면 해결됨.
자신의 CUDA 버전에 맞는 폴더로 이동
$ cd /usr/local/cuda-11.4/lib64
아래와 같이 검색을 해주면
$ ls -lha libcudnn*
심볼릭 링크 ->
제일 상단에 libcudnn.so, so.8, so.8.2.2 파일들에 링크가 없는걸 볼 수 있음.
우리가 복사하면서 사라진 거임. 이걸 다시 만들어줘야함.
-rwxr-xr-x 1 root root 155K Aug 10 09:22 libcudnn.so
-rwxr-xr-x 1 root root 155K Aug 10 09:22 libcudnn.so.8
-rwxr-xr-x 1 root root 155K Aug 10 09:22 libcudnn.so.8.2.2
-rwxr-xr-x 1 root root 124M Aug 10 09:22 libcudnn_adv_infer.so
lrwxrwxrwx 1 root root 73 Aug 10 09:32 libcudnn_adv_infer.so.8 -> /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.2.2
-rwxr-xr-x 1 root root 124M Aug 10 09:22 libcudnn_adv_infer.so.8.2.2
-rwxr-xr-x 1 root root 94M Aug 10 09:22 libcudnn_adv_train.so
lrwxrwxrwx 1 root root 73 Aug 10 09:35 libcudnn_adv_train.so.8 -> /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.2.2
-rwxr-xr-x 1 root root 94M Aug 10 09:22 libcudnn_adv_train.so.8.2.2
-rwxr-xr-x 1 root root 656M Aug 10 09:22 libcudnn_cnn_infer.so
lrwxrwxrwx 1 root root 73 Aug 10 09:32 libcudnn_cnn_infer.so.8 -> /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.2.2
-rwxr-xr-x 1 root root 656M Aug 10 09:22 libcudnn_cnn_infer.so.8.2.2
-rwxr-xr-x 1 root root 812M Aug 10 09:22 libcudnn_cnn_infer_static.a
-rwxr-xr-x 1 root root 812M Aug 10 09:23 libcudnn_cnn_infer_static_v8.a
-rwxr-xr-x 1 root root 89M Aug 10 09:23 libcudnn_cnn_train.so
lrwxrwxrwx 1 root root 73 Aug 10 09:32 libcudnn_cnn_train.so.8 -> /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.2.2
-rwxr-xr-x 1 root root 89M Aug 10 09:23 libcudnn_cnn_train.so.8.2.2
-rwxr-xr-x 1 root root 133M Aug 10 09:23 libcudnn_cnn_train_static.a
-rwxr-xr-x 1 root root 133M Aug 10 09:23 libcudnn_cnn_train_static_v8.a
-rwxr-xr-x 1 root root 368M Aug 10 09:23 libcudnn_ops_infer.so
lrwxrwxrwx 1 root root 73 Aug 10 09:32 libcudnn_ops_infer.so.8 -> /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.2.2
-rwxr-xr-x 1 root root 368M Aug 10 09:23 libcudnn_ops_infer.so.8.2.2
-rwxr-xr-x 1 root root 57M Aug 10 09:23 libcudnn_ops_train.so
lrwxrwxrwx 1 root root 73 Aug 10 09:32 libcudnn_ops_train.so.8 -> /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.2.2
-rwxr-xr-x 1 root root 57M Aug 10 09:23 libcudnn_ops_train.so.8.2.2
-rwxr-xr-x 1 root root 1.3G Aug 10 09:23 libcudnn_static.a
아래와 같이 명령어를 입력 해주자.
$ sudo ln -sf libcudnn.so.8.2.2 libcudnn.so.8
$ sudo ln -sf libcudnn.so.8 libcudnn.so
그 다음 다시 검색해보면
ls -al libcudnn.so*
심볼릭 링크가 형성됨
lrwxrwxrwx 1 root root 13 Aug 10 09:41 libcudnn.so -> libcudnn.so.8
lrwxrwxrwx 1 root root 17 Aug 10 09:41 libcudnn.so.8 -> libcudnn.so.8.2.2
-rwxr-xr-x 1 root root 158392 Aug 10 09:22 libcudnn.so.8.2.2
다음의 명령어를 입력했을 때,
ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
아래와 같이 나오면 해결 된 것임.
libcudnn_cnn_train.so.8 -> libcudnn_cnn_train.so.8.2.2
libcudnn_ops_infer.so.8 -> libcudnn_ops_infer.so.8.2.2
libcudnn.so.8 -> libcudnn.so.8.2.2
libcudnn_cnn_infer.so.8 -> libcudnn_cnn_infer.so.8.2.2
libcudnn_adv_train.so.8 -> libcudnn_adv_train.so.8.2.2
libcudnn_ops_train.so.8 -> libcudnn_ops_train.so.8.2.2
libcudnn_adv_infer.so.8 -> libcudnn_adv_infer.so.8.2.2
감사합니다.
반응형