ubuntu18.04上安装多个CUDA版本并可以随时切换

借鉴网址:https://blog.csdn.net/weixin_43804210/article/details/108003802

一、cuda安装:

cuda下载网址:https://developer.nvidia.com/cuda-downloads
开始安装:sudo sh cuda_10.2.456_396.37_linux.run
cuda安装时,如果已经有nvidia驱动了,在安装cuda的时候不要选择驱动Driver。
在这里插入图片描述

注意: 在安装第一个cuda版本的时候,可以选择默认符号链接:symbolic link…:选择yes.
在安装第二个或者后面cuda版本的时候,符号链接要选择no,因为符号链接是直接在/usr/local/中创建一个cuda版本的软连接:/usr/local/cuda

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n #添加链接**注意这个连接,如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里就建议选no,因为指定该链接后会将cuda指向这个新的版本**

cuda版本切换和环境变量设置

1、在 ~/.bashrc 文件中设置cuda的环境变量内容如下,这样是可以做到cuda版本切换的,通过更换软连接方式:

export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin 
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

2、如在 /usr/local中的软连接cuda指向的目录正是/usr/local/cuda-10.2,当我们想使用cuda-11.2版本时,只需要删除该软链接,然后重新建立指向cuda-11.2版本的软链接即可(注意名称还是cuda,因为要与bashrc文件里设置的保持一致)
这里需要在/usr/local目录下进行下面的操作

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-9.2 /usr/local/cuda

验证cuda是否安装成功:

为了验证CUDA,可以进入~目录中的cuda样例目录,样例一般被下载在Home目录下,编译项目:
在这里插入图片描述
编译完成后,进入bin目录中的其他文件,运行编译好的例程,执行 ./simpleMultiGPU 可执行文件命令,如果出现下面的结果则验证成功。
在这里插入图片描述

二、cudnn安装和版本更换

cudnn下载网址:https://developer.nvidia.com/rdp/cudnn-archive
经验证: cuda10.2版本对cudnn8.x.x以上的版本不支持,虽然官网也有相应的包,但是下载之后安装不成功,所以安装cudnn7.x.x版本,此处选择cudnn7.6.5版本。

切换cuda版本后,也要更换相应的cudnn版本。
cudnn包下载好之后,解压cudnn包:

tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz

因为cudnn的压缩包解压后是一个cuda文件夹,如果之前已经有解压出来的cuda文件夹,我一般是放在home目录下,需要先将先前的cuda文件夹删除,然后再解压新的cudnn包得到新的cuda文件夹。

sudo rm -rf cuda
tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz

最后将解压后的新的cuda文件夹中的内容复制到 /usr/local/cuda中的cuda文件夹的相关文件夹。操作如下,复制后即完成cudnn安装。

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

第一种验证方法,这种方法对于cudnn8.0以上的版本可能不适用,可能无法验证安装的cudnn是否可以使用,巨坑!!!已经过时,但是对于7.x版本还是可以适用:
在终端输入:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

如下显示即安装成功:
在这里插入图片描述
第二种验证方法,对于cudnn8.0以上的版本适用:
参考网址:https://blog.csdn.net/weixin_33158887/article/details/112296197

cudnn的卸载

如果是用deb包安装的cudnn,干净卸载,删除干净再重新安装才行,要把cudnn文件删除干净:

sudo rm -rf /usr/include/cudnn.h
sudo rm -rf /usr/lib/x86_64-linux-gnu/libcudnn*

如果你不知道到底删除干净没有,可以找找这个文件libcudnn.so.7,我这里要删除的是cudnn7.3.1版本的:

whereis libcudnn.so

如果只是显示下面的内容,说明 /usr/lib/x86_64-linux-gnu文件夹中的libcudnn的相关文件已经被删除干净了。
在这里插入图片描述

开始安装deb包的cudnn:

sudo dpkg -i libcudnn8_8.2.4.15-1+cuda11.4_amd64.deb
sudo dpkg -i libcudnn8-dev_8.2.4.15-1+cuda11.4_amd64.deb
sudo dpkg -i libcudnn8-samples_8.2.4.15-1+cuda11.4_amd64.deb

验证deb包安装的cudnn:

cp -r /usr/src/cudnn_samples_v8/ $HOME
cd  ~/cudnn_samples_v8/mnistCUDNN
sudo make clean 
sudo make
sudo ./mnistCUDNN

如果出现下面信息则证明deb包安装的cudnn安装成功:

Test passed!

在这里插入图片描述

注意:使用多个cudnn冲突的处理:

使用cudnn编译ROS、Autoware相关的代码时,可能出现如下错误,说明是有安装了多个cudnn,比如一个从deb包安装的,一个从源码安装并指定到cuda的,在编译时会产生冲突。解决办法是将其中一个删除,比如删除deb包安装的,删除方法可参考上面的cudnn卸载:在这里插入图片描述

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值