«Не удалось загрузить динамическую библиотеку» libcudnn.so.8 «» при запуске tensorflow в ubuntu 20.04

#python #tensorflow

Вопрос:

Примечание: существует много похожих вопросов, но для разных версий ubuntu и несколько разных конкретных библиотек. Я не смог понять, какая комбинация символических ссылок, дополнительных переменных среды, таких как LD_LIBRARY_PATH , будет работать

Вот моя конфигурация nvidia

 $ nvidia-smi
Tue Apr  6 11:35:54 2021
 ----------------------------------------------------------------------------- 
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|------------------------------- ---------------------- ---------------------- 
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|=============================== ====================== ======================|
|   0  GeForce RTX 2070    Off  | 00000000:01:00.0 Off |                  N/A |
| 18%   25C    P8     9W / 175W |     25MiB /  7982MiB |      0%      Default |
|                               |                      |                  N/A |
 ------------------------------- ---------------------- ---------------------- 

 ----------------------------------------------------------------------------- 
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1081      G   /usr/lib/xorg/Xorg                 20MiB |
|    0   N/A  N/A      1465      G   /usr/bin/gnome-shell                3MiB |
 ----------------------------------------------------------------------------- 
 

При запуске программы TF произошло следующее:

 2021-04-06 14:35:01.589906: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudnn.so.8'; dlerror: libcudnn.so.8: cannot open shared object file: No such file or directory
2021-04-06 14:35:01.589914: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1757] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
 

Кто-нибудь видел эту конкретную смесь и как вы ее разрешили?

Вот одно из дополнительных исправлений, которое было предпринято, но без изменений:

 conda install cudatoolkit=11.0
 

Комментарии:

1. CUDNN не является частью инструментария CUDA. он распространяется отдельно и должен быть установлен отдельно. Если вы использовали anaconda для установки tensorflow, то он должен быть установлен автоматически. Если это не так, то в конде что-то сломано. Если вы не использовали conda, вам нужно будет установить его вручную так, как ожидает tensorflow

2. Ах, ладно, я совсем забыл. Thx для этого указателя. Ответьте, если хотите . И да, я использую conda , но для меня это никогда не работало с tensorflow . Я собираюсь взорвать его и начать все сначала с pipenv

3. Похоже, что cuDNN не установлен из сообщения об ошибке. Для Tensorflow-GPU требуется CUDA 11.0 и cuDNN 8.0. Выполните действия, указанные на сайте Tensorflow для установки linux. Спасибо!

Ответ №1:

Так что у меня была та же проблема. Как говорится в комментариях, это потому, что вам нужно установить CUDNN. Для этого здесь есть руководство.

Но, как я уже знаю, ваш дистрибутив (Ubuntu 20.04) Я уже могу дать вам командные строки:

 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo apt-get update
sudo apt-get install libcudnn8=${cudnn_version}-1 ${cuda_version}
sudo apt-get install libcudnn8-dev=${cudnn_version}-1 ${cuda_version}
 

где ${cudnn_version} , например 8.2.4.* , и ${cuda_version} есть, например cuda11.0 (как я вижу, у вас есть 11.0 в команде nvidia-smi , хотя я не тестировал ее, так как у меня было 11.4, но я думаю, что она должна работать нормально)

Комментарии:

1. Для меня то, что работало на Ubuntu 20.04 и на моей машине RTX 3060, — это: sudo apt install libcudnn8=8.2.4.15-1 cuda11.2

Ответ №2:

У меня была та же проблема, и ОС Linux для меня Centos7-6. Поскольку у меня нет доступа к sudo на этой машине, я решил проблему, установив cudnn с веб-сайта anaconda

В среде, где установлен последний поток tensorflow :

 conda install -c anaconda cudnn
 

Вы можете проверить установку пакета, используя conda list : ( я ранее установил cudatoolkit пакет из anaconda )

 Name                      Version              Build  Channel
cudatoolkit               11.3.1               h2bc3f7f_2
cudnn                     8.2.1                cuda11.3_0
 

Вы можете проверить, разговаривают ли tensorflow и графические процессоры друг с другом :

 (tf2_6) [xxxx@msird-gpu-01 envs]$ python
Python 3.8.12 (default, Oct 12 2021, 13:49:34)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> gpus = tf.config.experimental.list_physical_devices('GPU')
>>> for gpu in gpus:
...     print("Name:", gpu.name, "  Type:", gpu.device_type)
...
Name: /physical_device:GPU:0   Type: GPU
Name: /physical_device:GPU:1   Type: GPU
 

Комментарии:

1. На самом деле, это может помочь мне решить проблему с установкой материалов на сервер моей компании… Я попробую это сделать.