ubuntu配置多版本cuda+cudnn环境,及版本切换方法
环境如下:
- ubuntu 22.04
- cuda v11.8
- cudnn v8.9.7
文章目录
- ubuntu配置多版本cuda+cudnn环境,及版本切换方法
- 1.安装Nvidia显卡驱动
- 1.1卸载默认的驱动`nouveau`
- 1.2安装nvidia驱动
- 2.安装cuda
- 3.安装cudnn
- 4.切换cuda版本
- 5.卸载cuda
- Reference
1.安装Nvidia显卡驱动
1.1卸载默认的驱动nouveau
lsmod | grep nouveau
查看nouveau
驱动的启用情况,如果有输出表示nouveau
驱动正在工作,如果没有内容输出则表示已经禁用了nouveau
。如果启用了nouveau
我们需要禁用它
sudo gedit /etc/modprobe.d/blacklist.conf
在文件的末尾追加两行
blacklist nouveau
options nouveau modeset=0
然后应用更改
sudo update-initramfs -u
这样我们就卸载了nouveau
,然后重启电脑
1.2安装nvidia驱动
首先我们需要知道我们应该安装哪个版本的驱动,
ubuntu-drivers devices

找到这个带recommended
字样的版本号,然后打开软件和更新->附加驱动
,选择刚才的版本号,然后应用更改
,然后重启。

重启完毕后,输入
nvidia-smi

可以看到我们这里的cuda
最高支持12.2
的版本
2.安装cuda
首先确认需要自己配置环境的使用版本,比如我希望配置一个pytorch v2.0.0
的版本,我就需要去torch的官网查看相应的cuda
和cudnn
的版本

比如这里支持CUDA 11.7
和CUDA 11.8
,那么我们就去下载这两个版本的cuda
中任意一个就行
cuda
:https://developer.nvidia.com/cuda-toolkit-archive
然后选择自己的平台配置

使用下面给出语句进行安装,例如,安装cuda 11.8
的语句是:
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run
在安装的过程中,取消Driver
的安装,如下:

然后配置环境变量
sudo gedit ~/.bashrc
写入以下的环境变量,并保存
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
我们测试是否安装成功
nvcc -V
应该出现类似的结果:

3.安装cudnn
cudnn
:https://developer.nvidia.com/rdp/cudnn-archive
进入官网选择自己cuda
版本适配的cudnn
,例如,我安装的是cuda 11.8
,应该选择

下载完毕后进行解压
tar -zvxf ./cudnn-linux-x86_64-8.9.7.29_cuda11-archive
使用下面两条指令复制解压后文件夹中的文件到/usr/local/cuda-11.8/lib64/
和/usr/local/cuda-11.8/include/
中
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/include/* /usr/local/cuda-11.8/include
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64
然后给其添加读写权限
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn.h
sudo chmod a+r /usr/local/cuda-11.8/lib64/libcudnn*
然后测试安装是否正常
cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

4.切换cuda版本
假如你需要使用不同版本的torch
,则需要切换多版本的cuda
,现在我的ubuntu下安装了cuda 11.8
和cuda 11.0
两个版本,我可以使用下列的方法来进行切换

我之前的使用cuda -11.8
,现在我需要切换到cuda -11.0
,我可以使用如下的方法
sudo rm -rf /usr/local/cuda #删除之前创建的软链接
sudo ln -s /usr/local/cuda-11.0 /usr/local/cuda #创建链接到cuda-11.0的软链接
nvcc --version #查看当前cuda版本
结果如下:

5.卸载cuda
进入cuda
的安装路径中,比如我需要卸载cuda 11.0
版本
cd /usr/local/cuda-11.0/bin
sudo ./cuda-uninstaller
全选然后Enter

然后
sudo rm -rf /usr/local/cuda-11.0
即可删除
Reference
[1]Ubuntu20.04下CUDA、cuDNN的详细安装与配置过程(图文)
[2]ubuntu下安装多版本cuda及版本切换教程
[3]超详细介绍Ubuntu系统安装CUDA和cuDNN【一站式服务!!!】