最近发现我之前在2080ti上运行好好的代码,结果在3090上运行会卡住很久,而且模型预测结果完全乱掉,于是被迫研究了一天怎么在Ubuntu20.04安装CUDA、cuDNN、tensorflow2。
1.安装CUDA(包括CUDA驱动和CUDA toolkit,注意此toolkit和通过conda或pip安装的cudatoolkit不是一个东西)
谷歌搜索"ubuntu install CUDA11.0"
打开,依次选择:
运行下面的第一句指令下载CUDA安装包:
接着运行第二个指令开始安装,等待提示,按步骤选择就行,主要是下面这一步,如果你已经安装了很高版本的CUDA Driver了的话,就没必要选他了。
接着,需要配置一下环境变量,具体就是在根目录的.bashrc中的末尾添加两行代码
具体操作:终端中输入"vim .bashrc",先输入i进入编辑模式,在末尾添加下面两行,其中具体是填写cuda-11.0还是cuda,这要看你的/usr/local里面的文件夹是cuda还是cuda-11.0,我的话因为装了好多个版本,所以有cuda、cuda-11.0、cuda-11.2等等,所以需要分清楚。添加之后,点击”Esc“,输入“:wq”保存并退出。
好了,CUDA就装好了,可以重启电脑后,通过ncvv -V指令看一下CUDA版本,如果最后一行显示11.0就说明装好了。
说明一下,通过ncvv -V显示的CUDA版本和nvidia-smi显示的版本会不一致,这不影响我们使用。
2.安装cuDNN
谷歌搜索cudnn archive
点击进入,选一个既满足cuDNN8.0也满足CUDA11.0的选项,点开,下载linux_x86这个
就会下载一个tgz压缩包
使用指令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,这个是最没技术含量的了
只需要写对版本就行,我这一套操作流程是参考了从源代码构建 | TensorFlowhttps://tensorflow.google.cn/install/source?hl=zh-cn#linux
里面“经过测试的构建配置”下“GPU”里面给出的一种已经被验证的组合:
所以,只需要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')))"
大功告成了!