CUDA 和 CuDNN 版本与 Tensorflow2.4.1 冲突

时间:2021-05-03 07:22:30

标签: python tensorflow ubuntu-20.04

我希望有人为您提供带有 RTX 30X0 的 TF2.4.1 环境。 更具体地说,我想知道 nvidia 驱动程序、CUDA 和 CuDNN 版本。毕竟也是TF2.4.1的安装方式。

我正在努力将 tensorflow2.4.1 安装到我的 PC 中,该 PC 如下所示。 操作系统:Ubuntu 20.04(版本无关紧要) CPU:锐龙5600X 显卡:RTX 3070

根据以下站点,我知道 TF2.4.1 的要求是 CUDA11.0 w/CuDNN8.0.4。

https://www.tensorflow.org/install/gpu

但是,NVIDIA 驱动程序版本 457 是 RTX 3070 的第一个版本,当前最新版本是 Ver.460。因此,我安装了 460 版,然后在终端上返回了“nvidia-smi”。 (如您所知,CUDA 版本 11.2 未随此驱动程序安装一起安装。)

| NVIDIA-SMI 460.73.01 驱动程序版本:460.73.01 CUDA 版本:11.2 |

下面来自 NVIDIA 站点的支持矩阵说 CUDA 11.0 适用于 450 版驱动程序。这意味着它不能是RTX 3070的那个。对于RTX 3070,我认为CUDA 11.2或更高版本是一个,因为它支持Ver.460。

https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html

安装 CUDA11.2 w/CuDNN8.1.0 后,我通过 pip 将 tensorflow 安装到 pyenv。但是,TF 在 CPU 上运行。我通过返回 '[]' 的 'tf.config.list_physical_devices('GPU')' 确认 正如我所料。 只要TF2.4.1对NVIDIA环境的限制有效,你认为我不能在这台PC上制作TF环境吗?

我在全新安装 Ubuntu 时尝试了很多模式。曾经因为 DPKG 错误而无法安装 ver.450,但我会再试一次。

2 个答案:

答案 0 :(得分:1)

谢谢大家。我发现我的问题如下解决。

安装 Ubuntu 20.04 后,安装最新的 NVIDIA 驱动程序。 (也许不需要,因为它会在安装 CUDA 时自动安装。)

sudo ubuntu-drivers devices
sudo apt-get install --no-install-recommends nvidia-driver-460
nvidia-smi
sudo reboot

安装TF2.4.1想要的CUDA11.0。 这次我提到了 runfile[local] 而不是 deb[local] 之前我失败了。 https://developer.nvidia.com/cuda-11.0-update1-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=2004&target_type=runfilelocal

sudo apt update
wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run
sudo sh cuda_11.0.3_450.51.06_linux.run

*WARNING “已找到驱动程序的现有包管理器安装。” 出现在上面一行,我中止了它。改为在下面完成。

sudo sh ./cuda_11.0.3_450.51.06_linux.run --toolkit --silent –-override

确认 usr/local/cuda-11.0/bin 是否存在并编辑 bashrc。

sudo vim ~/.bashrc

在 bashrc 中添加以下 2 行。

export PATH=/usr/local/cuda-11.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

重新加载 bashrc

source ~/.bashrc

安装 CuDNN。提前下载去皮库。 https://developer.nvidia.com/rdp/cudnn-archive

cd Downloads
tar -xzvf cudnn-11.0-linux-x64-v8.0.4.30.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
sudo apt update

按照 https://www.tensorflow.org/install/pip?hl=ja 的指示安装 TF2.4.1。

sudo apt install python3-dev python3-pip python3-venv
cd Documents/ML/tf-test1
python3 -m venv test1
source test1/bin/activate
pip install --upgrade pip
pip list
pip install --upgrade tensorflow

检查TF是否正确安装。

import tensorflow as tf
print(tf.__version__)
print(tf.config.list_physical_devices('GPU'))
print(tf.test.gpu_device_name())

当我执行我的 CNN 模型时,“无法获得卷积算法。这可能是因为 cuDNN 未能初始化’发生为 fit()。然后我像往常一样在下面做。

export TF_FORCE_GPU_ALLOW_GROWTH=true

然后整理出来。

答案 1 :(得分:0)

我有一个像你一样的 ubuntu 20.4。但是为了让 tensorflow 可以很好地看到 GPU,最终对我有用的是: 张量流-GPU 2.2.0 CUDA 10.1 cudnn 7.6 并且全部配备 460.73.01 版 NVIDIA 驱动器