Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)

最近发现我之前在2080ti上运行好好的代码,结果在3090上运行会卡住很久,而且模型预测结果完全乱掉,于是被迫研究了一天怎么在Ubuntu20.04安装CUDA、cuDNN、tensorflow2。

1.安装CUDA(包括CUDA驱动和CUDA toolkit,注意此toolkit和通过conda或pip安装的cudatoolkit不是一个东西)

谷歌搜索"ubuntu install CUDA11.0"

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)_第1张图片

打开,依次选择:

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)_第2张图片

运行下面的第一句指令下载CUDA安装包:

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)_第3张图片接着运行第二个指令开始安装,等待提示,按步骤选择就行,主要是下面这一步,如果你已经安装了很高版本的CUDA Driver了的话,就没必要选他了。

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)_第4张图片

接着,需要配置一下环境变量,具体就是在根目录的.bashrc中的末尾添加两行代码

具体操作:终端中输入"vim .bashrc",先输入i进入编辑模式,在末尾添加下面两行,其中具体是填写cuda-11.0还是cuda,这要看你的/usr/local里面的文件夹是cuda还是cuda-11.0,我的话因为装了好多个版本,所以有cuda、cuda-11.0、cuda-11.2等等,所以需要分清楚。添加之后,点击”Esc“,输入“:wq”保存并退出。

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)_第5张图片

好了,CUDA就装好了,可以重启电脑后,通过ncvv -V指令看一下CUDA版本,如果最后一行显示11.0就说明装好了。

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)_第6张图片

说明一下,通过ncvv -V显示的CUDA版本和nvidia-smi显示的版本会不一致,这不影响我们使用。

2.安装cuDNN

谷歌搜索cudnn archive

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)_第7张图片

点击进入,选一个既满足cuDNN8.0也满足CUDA11.0的选项,点开,下载linux_x86这个

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)_第8张图片

就会下载一个tgz压缩包Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)_第9张图片

使用指令tar -zxvf cudnn-11.0-linux-x64-v8.0.2.39.tgz进行安装,安装完成后,会在旁边生成一个cuda文件夹,里面都是cudnn的文件。

然后,需要手动将其中一些文件复制到./usr/local/cuda-11.0里面

1. cp cuda/lib64/* /usr/local/cuda-11.0/lib64/

2. cp cuda/include/* /usr/local/cuda-11.0/include/

好了,cuDNN也装完了。

3. 安装tensorflow,这个是最没技术含量的了

只需要写对版本就行,我这一套操作流程是参考了从源代码构建  |  TensorFlowicon-default.png?t=N7T8https://tensorflow.google.cn/install/source?hl=zh-cn#linux

里面“经过测试的构建配置”下“GPU”里面给出的一种已经被验证的组合:

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)_第10张图片

所以,只需要pip install tensorflow==2.4.0就大功告成了。

我们运行一下

import tensorflow as tf
print(tf.__version__)
print('GPU', tf.test.is_gpu_available())
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

或者运行一下

python3 -c "import os; os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'; import tensorflow as tf; print('Num GPUs Available: ', len(tf.config.list_physical_devices('GPU')))"

大功告成了!

你可能感兴趣的:(tensorflow,人工智能,深度学习)