После установки 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*
в /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
Благодаря дорогому Богу я нашел решение с помощью этой ссылки.
Это может произойти при выполнении sudo ldconfig после копирования cuDNN файлы.
После установки
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.so
иlibcudnn.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*
в /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
И все вернулось к нормальному:)
Проверить
wxf:/usr/local/cuda/lib64$ ls -al
...
...
-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
)
Поскольку
(cudnn загруженный с Nvidia имеет символьную ссылку),
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
...
...
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
...