繁体   English   中英

“在 ubuntu 20.04 上运行 tensorflow 时,无法加载动态库 'libcudnn.so.8'”

[英]"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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM