多版本CUDA与多版本cuDNN在linux / Ubuntu22.04上的安装与卸载
NVIDIA显卡驱动 for Linux / Ubuntu22.04的续集,主要关注多版本CUDA与多版本cuDNN在linux / Ubuntu22.04上的安装与卸载。
- 重点:
- 整合了两种CUDA安装方式(.run与.deb)、两种cuDNN的安装方式(.tar.xz与.deb),网上好像没什么人做这个
- 整合了CUDA与cuDNN的官方样例代码的测试方法
- 网上的CUDA测试方法大多使用
nvcc -V
,还算OK,添加了官方samples的测试 - 网上的cuDNN测试方法基本上止步于查询版本号或者查询dpkg是否能正常索引包,不太有用,能编译跟跑通官方样例才是正解
- 网上的CUDA测试方法大多使用
- 安装了多版本的CUDA与cuDNN
- 整合了CUDA与cuDNN的版本切换方法,尤其是完善的使用脚本的一键切换版本方法(部分代码由GPT辅助生成)
- 整合了CUDA与cuDNN的彻底卸载方法
往下看的重要提醒
如果你使用了conda来管理你的环境,如果环境中安装了pytorch,那么已经自带了需要的CUDA与cuDNN,不需要、没必要再另外安装
如果是TensorFlow,可以从conda的仓库里指定CUDA与cuDNN版本来安装
可以看到在我的conda环境中已经安装了torch,附带了cuda12.4与cuDNN9.1.0_0了,想安装不同版本的cuda与cuDNN,直接去pytorch官网吧
$ conda list | grep 'cudnn'
pytorch 2.4.0 py3.12_cuda12.4_cudnn9.1.0_0 pytorch
CUDA for Linux
1.安装准备
- 使用
nvidia-smi
查看可支持CUDA最高版本 - NVIDIA ToolKit官网找对应版本CUDA:
- CUDA下载页:https://developer.nvidia.com/cuda-downloads
- 一般都是需要寻找其他的合适版本,从上面网站的Resources · Archive of Previous CUDA Releases进去:CUDA Toolkit Archive
2.安装方法推荐
推荐使用方法一.run
安装,原因:
- 后续版本管理或卸载非常方便
- 使用
.deb
可能会将已经安装的较新的显卡驱动替换,有潜在风险
2.1方法一:.run
(local)安装
-
下载并安装
wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/./cuda_12.1.1_530.30.02_linux.run # 法一: sudo sh ./cuda_12.1.1_530.30.02_linux.run # 法二: sudo chmod +x ./cuda_12.1.1_530.30.02_linux.run # 添加可执行权限 ./cuda_12.1.1_530.30.02_linux.run # 安装
-
进入可视化界面安装
同意协议:
因为之前已经安装了驱动,取消勾选驱动安装
在Options里可以更改安装地址,还可以选择为哪些用户或全部用户安装CUDA
因为要考虑我们手动切换版本,不要让安装程序自动更新软链接选择NO
如果不需要多版本,选择yes
注释:软链接是指在系统中
"cuda"
文件夹是一个软链接("cuda-12"
也是),它将指向具体版本的一个cuda文件夹,例如新安装的cuda-12.1
安装成功,输出信息:$ sudo ./cuda_12.1.1_530.30.02_linux.run =========== = Summary = =========== Driver: Not Selected Toolkit: Installed in /usr/local/cuda-12.1/ Please make sure that - PATH includes /usr/local/cuda-12.1/bin - LD_LIBRARY_PATH includes /usr/local/cuda-12.1/lib64, or, add /usr/local/cuda-12.1/lib64 to /etc/ld.so.conf and run ldconfig as root To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.1/bin ***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 530.00 is required for CUDA 12.1 functionality to work. To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file: sudo <CudaInstaller>.run --silent --driver Logfile is /var/log/cuda-installer.log
从输出信息中也能看到对环境变量有要求:
Please make sure that - PATH includes /usr/local/cuda-12.1/bin - LD_LIBRARY_PATH includes /usr/local/cuda-12.1/lib64, or, add /usr/local/cuda-12.1/lib64 to /etc/ld.so.conf and run ldconfig as root
接下来跳过下面方法二,看下面如何修改环境变量
2.2方法二:.deb
(local)安装
直接跟着官网的指令一行行走安装即可
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda-repo-ubuntu2204-12-6-local_12.6.0-560.28.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-6-local_12.6.0-560.28.03-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-6
- 报错没有安装libtinfo5:
The following packages have unmet dependencies: E: nsight-systems-2023.4.4 : Depends: libtinfo5 but it is not installable
- 解决法一:从libtinfo5官网找到对应版本的下载地址并
wget
下载:Libtinfo5官网wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.4-2_amd64.deb dpkg -i libtinfo5_6.4-2_amd64.deb
- 参考:Ubuntu 24.04 Preview 版安装 libtinfo5
- 解决法二(未测试):
修改/etc/apt/sources.list
或者/etc/apt/sources.list.d/ubuntu.sources
- 详见:Installing CUDA on Ubuntu 23.10 - libt5info not installable
- 解决法一:从libtinfo5官网找到对应版本的下载地址并
2.3修改环境变量以便使用nvcc
命令
-
不修改的话大概率没法用
-
检查CUDA是否确实安装
$ ls /usr/local bin cuda cuda-12 cuda-12.4 etc games include lib man sbin share src
-
在系统可视化界面中,可以看出
"cuda"
是一个软链接("cuda-12"
也是),它将指向具体版本的一个cuda文件夹,这里我安装了第二个版本的CUDA,所以指向了新安装的cuda-12.1
-
修改环境变量
注意,路径是通过软链接的文件夹来指向实际路径的# 编辑bashrc $ vim ~/.bashrc # 末尾添加以下三行: # cuda export LD_LIBRARY_PATH=/usr/local/cuda/lib64 export PATH=$PATH:/usr/local/cuda/bin # 刷新 $ source ~/.bashrc # 测试 $ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2023 NVIDIA Corporation Built on Mon_Apr__3_17:16:06_PDT_2023 Cuda compilation tools, release 12.1, V12.1.105 Build cuda_12.1.r12.1/compiler.32688072_0
2.4功能验证
最后显示PASS,验证成功
# 找到验证demo的目录
$ cd /usr/local/cuda-12.1/extras/demo_suite
$ ls
bandwidthTest busGrind deviceQuery nbody nbody_data_files oceanFFT oceanFFT_data_files randomFog ran