0 一些推荐版本
各软件经常会出现版本适配问题,这里贴一下别人验证过的版本:
2022【超详细】搭建深度学习环境与配置 tensorflow2.7+keras2.7+CUDA11.6+cuDNN 对应版本_cuda11.6对应的cudnn_霍灵渊的博客-CSDN博客
python3.7.0+CUDA11.6.0+cuDNN8.3.2+tensorflow2.7.0+Keras2.7.0
python3.7.0+CUDA11.3.1+cuDNN8.2.1+tensorflow2.7.0+Keras2.7.0
python3.7.0+CUDA10.1.2+cuDNN7.6.5+tensorflow2.2.0+keras 2.3.1
如果你想自己找合适的适配版本,可以先到tensorflow或pytorch上看一下需要的对应版本,按他需要的安装比较合适。
Build from source | TensorFlow (google.cn)
Previous PyTorch Versions | PyTorch
本文的安装示例为:
python 3.8+CUDA11.3+CUDA10.2+cuDNN8.5.0+tensorflow2.10
1 安装多版本可切换CUDA(以cuda 11.3与10.2为例)
1.1 从官网下载所需版本的cuda安装包(可直接跳到1.2,该节仅是为了介绍下载网站及卸载原有cuda方式)
https://developer.nvidia.com/cuda-toolkit-archive
选择所需版本使用wget+url下载即可(若要多版本cuda安装,Installer Type选择为runfile(因为使用deb文件进行安装的话,可能会将已经安装的显卡驱动给替换掉)
cuda与driver对应表在下面这个连接的 CUDA Driver 选项卡下:
CUDA 12.2 Release Notes — cuda-toolkit-release-notes 12.2 documentation (nvidia.com)
卸载原有CUDA:
1. apt方式:
sudo apt --purge remove cuda-11.4
sudo apt autoremove
sudo apt autoclean
sudo rm -rf /usr/local/cuda-11.4/
2. cuda自带卸载脚本
cd /usr/local/cuda-xx.x/bin/
sudo ./cuda-uninstaller
sudo rm -rf /usr/local/cuda-xx.x
1.2 安装cuda
选择下载时下面附带了安装方式:
wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run
sudo chmod +x cuda_11.3.1_465.19.01_linux.run
使用
sudo ./cuda_11.3.1_465.19.01_linux.run
进行cuda安装程序。若执行后光标停住不动请等待。
若第1步提示Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.选择continue,同意协议后,在下一步中使用回车键去除driver项,之后选择install。
完成后应该有如下显示:
1.3 设置环境变量
vim ~/.bashrc
# cuda
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
使用
source ~/.bashrc
应用环境变量
1.4 测试cuda是否已安装
nvcc -V
import torch
print('CUDA版本:', torch.version.cuda)
print('Pytorch版本:', torch.__version__)
print('显卡是否可用:', '可用' if (torch.cuda.is_available()) else '不可用')
print('显卡数量:', torch.cuda.device_count())
print('是否支持BF16数字格式:', '支持' if (torch.cuda.is_bf16_supported()) else '不支持')
print('当前显卡型号:', torch.cuda.get_device_name())
print('当前显卡的CUDA算力:', torch.cuda.get_device_capability())
print('当前显卡的总显存:', torch.cuda.get_device_properties(0).total_memory / 1024 / 1024 / 1024, 'GB')
print('是否支持TensorCore:', '支持' if (torch.cuda.get_device_properties(0).major >= 7) else '不支持')
print('当前显卡的显存使用率:', torch.cuda.memory_allocated(0) / torch.cuda.get_device_properties(0).total_memory * 100, '%')
2 安装cuDNN
历史版本cuDNN链接:
官方安装文档如下:
2.1 安装cudnn(本地安装)
下载cudnn 8.5.0 for 11.x (x86_64版本)
cuDNN Archive | NVIDIA Developer
直接使用wget下载并不可行,应该是因为下载cudnn需要登陆的原因
使用本地安装,需要提前下载好.deb包后放置到Ubuntu系统中,然后使用
对其进行安装
官方文档对Ubuntu只写了apt网络安装方式,不过Ubuntu是基于Debian系统,因此可以使用Debian本地安装方式
解压.deb包
sudo dpkg -i cudnn-local-repo-ubuntu1804-8.5.0.96_1.0-1_amd64.deb
添加gpg密钥
上一个命令执行完后会提示复制gpg密钥文件,复制提示的命令即可
类似这样
sudo cp /var/cudnn-local-repo-ubuntu1804-8.5.0.96/cudnn-local-7B49EDBC-keyring.gpg /usr/share/keyrings/
更新库:
sudo apt-get update
安装cudnn
sudo apt-get install libcudnn8=8.5.0.96-1+cuda11.7
sudo apt-get install libcudnn8-dev=8.5.0.96-1+cuda11.7
sudo apt-get install libcudnn8-samples=8.5.0.96-1+cuda11.7
此处虽然我是cuda 11.3,但我安装的时候选的11.7,是因为8.5版本无11.3的版本,执行会报错,但cudnn一般是支持11.x整个系列,所以都可以使用
找到相应版本的方式:
输入
sudo apt-get install libcudnn8=8.5
后,按两次Tab键就会提示可安装版本
安装完成后,跳转至本文2.3部分,测试安装是否成功
2.2 安装cudnn(网络安装,建议本地安装,网络安装这里官方文档有些问题)
2.2.1 添加网络存储库
使用官方安装指南中3.10.3 的第2部分添加网络存储库:
1. Introduction — cuda-installation-guide-linux 12.2 documentation
$distro/$arch需替换为ubuntu1804/x86_64(以ubuntu 18.04 x64 为例)
示例:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
2.2.2 安装 cuDNN 示例:
使用官方安装指南中
的第二部分进行安装
示例:
sudo apt-get install libcudnn8=8.2.0.53-1+cuda11.3
sudo apt-get install libcudnn8-dev=8.2.0.53-1+cuda11.3
sudo apt-get install libcudnn8-samples=8.2.0.53-1+cuda11.3但是我在安装时会在第三句报错,通过
apt list -a libcudnn-samples
查看,发现samples包并没有8.9之外的版本,既然如此,我决定放弃这种安装方式,使用本地安装方式
实际如果执行到这步也可以手动从
下载samples包,但感觉既然如此,还不如直接使用本地安装的方式,就remove掉之前的包使用本地安装的方式了。
2.3 测试是否成功安装
sudo apt-get install libfreeimage3 libfreeimage-dev
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN
应该会获得如下结果:
运行环境测试:
import torch
from torch.backends import cudnnprint(cudnn.is_available()) # 若正常返回True
a = torch.tensor(1.)
print(cudnn.is_acceptable(a.cuda())) # 若正常返回True
3 多版本环境安装
3.1 安装多版本cuda环境
将1.2部分重新执行一遍,版本改为另一个所需要的版本(执行过程中会提示已有symlink是否更新,更新即可)
而后使用
cd /usr/local/
ls -l
查看该目录,可以看到有两个版本的cuda
3.2 安装多版本cudnn环境
执行3.3部分,切换cuda至10.2版本
将2.1部分重新执行一遍,版本改为另一个所需要的版本
执行2.3 部分再次测试cuda 10.2上的cudnn是否安装完成
3.3 切换cuda版本
如果需要切换版本,则执行如下步骤,10.2更换为你需要的版本
sudo cd /usr/local/
sudo rm -rf cuda # 删除原有的软链接
sudo ln -s /usr/local/cuda-10.2 /usr/local/cuda # 将cuda-10.2链接到cuda下
使用
nvcc -V
查看现在使用的cuda版本,可以看到现在使用的是10.2了
3.4 多版本tensorflow和pytorch
此处只需要使用conda建立不同虚拟环境即可实现版本切换,后续也就不再赘述
4 Tensorflow(以tensorflow2.10为例)
Tensorflow版本对应表:
Build from source | TensorFlow (google.cn)
直接使用
conda install tensorflow-gpu
安装即可,conda会自动选择合适的版本
如果出现如下报错:
EnvironmentNotWritableError: The current user does not have write permissions to the target environment.
environment location: conda的路径
则执行如下命令:
sudo chmod -R 777 conda路径
如果需要指定版本(以2.10.0为例):
conda install tensorflow-gpu==2.10.0
测试方法:
import tensorflow as tf
print(tf.__version__) # 查看tensorflow版本
print(tf.__path__) # 查看tensorflow安装路径a = tf.test.is_built_with_cuda() # 判断tensorflow与CUDA连接是否可以用
b = tf.test.is_gpu_available(
cuda_only=False,
min_cuda_compute_capability=None
) # 判断GPU是否可以用print(a) # 显示True表示CUDA可用
print(b) # 显示True表示GPU可用# 查看驱动名称
if tf.test.gpu_device_name():
print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
print("Please install GPU version of TF")
注:重装tensorflow或者修改版本时,需要将protobuf也一同重装,版本不匹配会导致不可用
5 pyTorch
pyTorch先前版本列表(包含安装命令及版本对应)
Previous PyTorch Versions | PyTorch
链接里包含了各版本各系统的安装方法及对应版本
示例(以Linux pyTorch 1.12.1为例):
# CUDA 11.3
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
Reference:
NVIDIA驱动、CUDA、cuDNN、Torch、Tensorflow对应版本一文搞明白_nvidia驱动对应的cuda版本-CSDN博客
Ubuntu22.04安装CUDA、cudnn详细步骤_ubuntu安装cuda和cudnn_takedachia的博客-CSDN博客 Ubuntu20.04系统下安装cudnn8.2.1详细过程及遇到的问题与解决(已安装cuda11.3,不同版本类似)_qq_43453738的博客-CSDN博客2022【超详细】搭建深度学习环境与配置 tensorflow2.7+keras2.7+CUDA11.6+cuDNN 对应版本_cuda11.6对应的cudnn_霍灵渊的博客-CSDN博客