多版本cuda安装及灵活切换详细教程
一、首先介绍下我所使用的环境ubuntu18.04 + 1080ti二、下载安装包1.cudatoolkit下载①环境选择,想要多版本共存的,尽量选择runfile文件进行安装②有些cudatoolkit下载页面,和我上边的一样,没有对应的安装包下载按钮,Base Installer中只给了两行命令,如果运行第一行命令的话,下载会比较慢,我是直接复制wget后边的链接在新网页窗口中打开,会自动弹出
·
一、首先介绍下我所使用的环境
ubuntu18.04 + 1080ti
二、下载安装包
1.cudatoolkit下载

①环境选择,想要多版本共存的,尽量选择runfile文件进行安装
②有些cudatoolkit下载页面,和我上边的一样,没有对应的安装包下载按钮,Base Installer中只给了两行命令,如果运行第一行命令的话,下载会比较慢,我是直接复制wget后边的链接在新网页窗口中打开,会自动弹出下载窗口,下载会比命令行快不少(我是用的IDM下载工具,能够达到7M/s,感兴趣的可以自己去安装尝试一下)
③这里先介绍下载,安装步骤下边单独介绍
2.cudnn下载
根据自己的cuda版本,下载对应的cudnn(注意:cudnn与cuda并不是一一对应的关系,如果你想要安装的是cuda10.2,有多个版本的cudnn与之匹配,不同版本之间的区别这里暂不详细介绍,如果你的项目中没有明确说明cudnn版本,那么自己随便选择一个就好了,我是求稳,安装的cudnn7.6.5版本,因为我git的项目中,这个版本是别人测试通过的)

③下载好之后,cudnn文件先解压放一边备用。
三、开始安装
1.安装cuda(写博客时我已经安装好需要用到的cuda10.0、cuda10.2两个版本了,不想卸载,所以又下载了cuda9.2的版本,做个演示)
sudo sh cuda_9.2.148_396.37_linux.run
一开始是一大堆协议说明的内容,不需要管,直接按q,接着就问你是否接受协议,输入accept,然后回车

后边一堆选择,要谨慎,不要一股脑yes,参考下图

有两处选择no
#这里是问你是否要安装显卡图形驱动,正常情况下我们都是已经安装好了显卡驱动的
#不需要重复安装,否则可能会出问题
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 396.37?
(y)es/(n)o/(q)uit: n
#这里是创建软连接,如果是第一次安装cuda,可以选择yes
# 如果目前安装的cuda不是第一个,建议选择n,后边我会介绍如何修改软连接进行cuda版本切换
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n
四、Cudnn配置
不想看文字的,可以参考该视频,从第5分钟开始看即可
1. 在安装时,有一个选项是让你选择安装位置,默认是安装在/usr/local中:
Enter Toolkit Location
[ default is /usr/local/cuda-9.2 ]:
2.进入到/usr/local路径下查看cuda-9.2目录是否已经存在

3.打开之前解压好的cudnn文件夹,将include和lib64中的文件,分别复制到/usr/local/cuda-9.2/include和/usr/local/cuda-9.2/lib64目录下,一般情况下权限等级比较高,无法直接复制,可以先修改权限在复制,也可以命令行使用sudo cp的命令复制过去,复制过去之后,记得把复制过的文件权限,修改到最低,即将权限都修改成rwxrwxrwx
五、cuda版本切换
1.先配置.bashrc
分析前三个很容易明白其他版本的规律,第4条独立于123,123属于同一类方法不同cuda版本配置,放3个是为了方便读者找出规律,每次修改cuda版本是都要进入到.bashrc进行修改,第4条是设置软链接,修改时无需在修改.bashrc,只需要修改软链接文件指向的想要切换的cuda版本文件即可,比较推荐4的方式,因为.bashrc文件经常打开修改的话,保不准哪次不小心修改错了地方又没发现,引起不必要的错误
注意:以下所有配置语句或者命令行,在复制时,都要把每行前面的#删掉,我这里是为了网页上更容易辨别代码颜色才加的#符号,防止小白直接整行复制,这里稍微提醒一下
#以cuda9.2,cuda10.0,cuda10.2为例,想要使用哪个版本,
#就放开对应的注释,如果你使用的其他cuda版本,只需将 cuda-x.x 改成你需要使用的版本
# 1.下边两行是配置cuda-9.2的语句
#export PATH=/usr/local/cuda-9.2/bin${PATH:+:${PATH}}
#export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 2.下边两行是配置cuda-10.0的语句
#export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
#export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 3.下边两行export是配置cuda-10.2的语句
#export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
#export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#4.上边的方法相对简单易懂一点,还有一种方式就是通过修改软连接的方式切换cuda版本,如下
#export PATH=$PATH:/usr/local/cuda/bin
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
#export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
2.如果.bashrc中使用的软连接方式,切换版本的步骤如下:
#进入到安装cuda所在的目录,淡蓝色的cuda文件夹就是软连接,在文件管理器中查看的话,图标有一个黑色箭头
# cd /usr/loscal
#删除原有的cuda软链接
#为了方便下次再次使用该版本的软连接,我一般是备份当前软连接,102表示这是cuda10.2的软连接备份
# sudo mv cuda cuda102
#建立新的软连接
# sudo ln -s /usr/local/cuda-9.2 /usr/local/cuda

①从下图操作可以看出,一开始是cuda10.2版本,更换后成功切换成cuda9.2版本,由于是第一次使用cuda9.2,所以要创建一次cuda9.2版本对应的cuda软连接(比较绕),按照我后续步骤的方法,每个版本的软连接只需要创建一次就行了

②从下图中可以看出我有三个版本cuda的软连接文件(分别是浅蓝色的cuda、cuda100、cuda102文件),当前cuda连接的版本是cuda9.2,现在我想使用cuda10.0版本,仅需将现在的cuda文件备份为cdua92,然后将cuda100更名为cuda即可。步骤如下:
(1)将现在使用的软连接更名成cudaXXX
sudo mv cuda cuda92
(2)将需要使用的cudaXXX更名成cuda
sudo mv cuda100 cuda
(3)上边两句代码,完工,查看当前cuda版本,测试是否更换成功
nvcc -V

③注意,第一次使用某个版本的cuda时都需要经过创建新软连接文件的步骤,后续更改时,相当于将对应版本软连接的备份更名成cuda即可。无需频繁操作.bashrc文件,毕竟配置文件一不小心搞乱了,就麻烦了。
欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐


所有评论(0)