[英]"Could not load dynamic library 'libcudnn.so.8'" when running tensorflow on ubuntu 20.04
注意:有许多类似的问题,但针对不同版本的 ubuntu 和有些不同的特定库。 我无法弄清楚符号链接的组合,额外的环境变量,如LD_LIBRARY_PATH
会起作用
这是我的英伟达配置
$ 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
所以我有同样的问题。 正如评论所说,这是因为您需要安装 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/${last_public_key}.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
sudo apt-get install libcudnn8-dev
其中${last_public_key}
是在https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/上发布的最后一个公钥(扩展名为.pub
的文件)。 (在 2022 年 5 月 9 日编辑这篇文章时,它是3bf863cc.pub
)。
如果要安装特定版本,最后 2 个命令将替换为
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
(我看到你在命令nvidia-smi
上有 11.0 ,虽然我没有测试它,因为我的是 11.4 但我猜它应该可以工作)
我遇到了同样的问题,linux 操作系统对我来说是 Centos7-6。 由于我在这台机器上没有 sudo 访问权限,我通过从 anaconda 网站安装 cudnn 解决了这个问题
在安装最新tensorflow流程的环境下:
conda install -c anaconda cudnn
您可以使用 conda conda list
检查 package 安装:(我之前从 anaconda 安装了cudatoolkit
)
Name Version Build Channel
cudatoolkit 11.3.1 h2bc3f7f_2
cudnn 8.2.1 cuda11.3_0
您可以检查 tensorflow 和 gpus 是否正在相互通信:
(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
我用在 Ubuntu 22.04
sudo apt install nvidia-cudnn
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.