背景:在学习深度学习时,我们不可避免的需要跑多个神经网络,而不同的神经网络环境都不一样,所以必须要使用到虚拟环境(如conda)去做环境隔离,安装属于自己的环境。在这环境中,大多神经网络都必须要用到cuda,cudnn。不同的神经网络需求版本不同,所以也需要另行安装,这与前面一篇文章pip安装包的方式还不太一样。
一.cuda安装
1.确定当前平台cuda可以安装的版本
安装好显卡驱动后,使用nvidia-smi命令可以查看这个显卡驱动可以安装的最高的cuda版本是多少,如下:
Driver Version: 525.89.02 表明当前显卡驱动版本是525.89.02
CUDA Version: 12.0 表明当前的显卡驱动可以安装的cuda最高版本是12.0
2.conda环境中安装cuda(cudatoolkit)
注意:我所使用的深度学习框架是pytorch,pytorch与cuda,cuda与cudnn之间的版本都有明确的对应关系,所以需要先确定pytorch的版本。
2.1 根据pytorch版本确定cuda和cudnn的版本
例如,我使用的pytorch版本是1.11.0。
- 那么首先就可以去官方网站上,找cuda版本对应关系。如下图:
可以看到,pytorch==1.11.0版本对应的cuda可以是11.3或者10.2(GPU时) - 其次,我们在根据cuda的版本去确定cudnn的版本。
如下图,加入我们安装cuda 11.3,那么可以对应找到可以安装cudnn的资源(有多个可以适用)。
2.2 安装cuda
注意,此时我们已经使用conda,去激活了某一个虚拟环境。(安装了conda后,使用conda create -n xxx python==xxx和conda activate xxx 去激活xxx环境)
如一中的2.1确定的cudnn版本,然后可以使用conda来搜索仓库有哪些cudnn的版本可以安装。
# 查看都有哪些版本
conda search cudatoolkit
如果刚好有满足要求的版本,直接使用如下语句安装即可。
conda install cudatoolkit==(指定版本)
第一条命令可以查看用来安装cudatoolkit的所有版本都有哪些。
在conda环境中,可以直接用conda装cuda和cudnn,缺点是conda源中没有全部版本的cuda和cudnn,并且下载速度会比较慢,可以考虑换源。
如果换源速度也不行,那么可以考虑如下方案:
conda search cudatoolkit --info
# 查看所有列出来的cudatoolkit的详细信息,包括版本号version,文件网址url,依赖项dependencies。
# 直接conda install cudatoolkit,通常下载安装包的速度很慢,当换源都不好使的时候,因而可以用上面给出的文件网址url来用下载工具去下载这个包,再去本地安装
# 依赖项dependencies:想要使用cudatoolkit,还需要安装什么才可以使用。
本地安装离线包的命令是:
conda install --use-local 包名
如果没有满足要求的版本,那么只能去官网下载包,进行离线安装
注意:此处没有深入了解,即使装成功了,这个虚拟环境应该还需要设置环境变量才能使用,但是我暂时还不会。一般conda搜索出来的就能满足需求了。
二.cudnn安装
如一中的2.1确定的cudnn版本,然后可以使用conda来搜索仓库有哪些cudnn的版本可以安装。
# 查看都有哪些版本
conda search cudnn
1.如果刚好有满足要求的版本,直接使用如下语句安装即可。
conda install cudnn==(指定的版本)
2.如果没有满足要求的版本,那么只能去官网下载包,进行离线安装
安装命令:
conda install --use-local 本地cudnn包所在的路径
也可以复制想要安装版本的cudnn的下载地址,使用wget链接地址进行下载
三.测试安装cuda,cudnn是否成功
在虚拟环境中安装完cuda和cudnn想要测试是否安装成功,不能使用nvcc -V命令测试,需要在虚拟环境中安装pytorch包进行测试
装好pytorch后,命令行输入python,进入python的命令行,导入torch包
- 查询cuda版本
print(torch.version.cuda)
- 查询cudnn版本
print(torch.backends.cudnn.version())
注意:现在的pytorch官网介绍的安装命令附带了下载和安装cuda,但是没有附带cudnn,所以还需要额外安装cudnn(但是发现,跑一些开源网络的时候,按照他的步骤走,pytorch和cuda是分开安装的,不晓得为什么,所以才有上面的内容)。
参考文章:
https://blog.csdn.net/LIWEI940638093/article/details/113811563
https://blog.csdn.net/qq_43705697/article/details/121618276