在ubuntu上安装多个版本的CUDA,并且可以随时切换

前言

实验室工作站被多人使用导致需求不同的cuda版本,一直没找到一个完全完整靠谱的教程,这是我参考几个博客完成测试的全过程记录,方便以后操作,无任何商业用途,如有侵权,请联系删除。

注:其中好多摘录自其他博客,我在操作过程中大部分未保存结果,只能用其他博客中我认为合适的图片等代替

一、确定安装的软件版本

安装前需先确定显卡驱动、CUDA、cuDNN等之间的对应关系。由于我的帐户没有管理员权限,不能安装显卡驱动,只能根据现有驱动的版本来选择CUDA版本,输入指令 cat /proc/driver/nvidia/version 查看当前服务器版本号

在ubuntu上安装多个版本的CUDA,并且可以随时切换

文中目录结构解释如下:

用户名为zb;
目录 /home/zb/cuda/用于存放不同的cuda版本,每安装一个版本的CUDA就在该目录下新建一个文件夹,如cuda-8.0,并安装在相应的目录下;
安装包下载到 /home/zb/cuda/ 目录下,安装完成后就删除安装包;
目录 /home/zb/cuda/tem/ 目录用于cuDNN的解压,安装完成后就删除该目录;

注意:不同版本cuda对应的NVIDIA驱动版本

CUDA与Driver的对应版本:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

cuda10.0与Linux系统以及GCC的对应关系:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

; 二、下载CUDA Toolkit 和 cuDNN

cuda的下载地址: https://developer.nvidia.com/cuda-toolkit-archive

使用指令wget -c XXX 将安装包下载到服务器上

在ubuntu上安装多个版本的CUDA,并且可以随时切换

cudnn的下载地址: https://developer.nvidia.com/rdp/cudnn-archive

注:由于下载cuDNN需要登录帐户,直接在终端用指令下载可能会失败,可以先在windows上注册个帐户下载好再上传到服务器。(使用MobaXterm等软件连接服务器后可以很方便地把windows上的文件通过拖动的方式上传到服务器上)

在ubuntu上安装多个版本的CUDA,并且可以随时切换

三、安装CUDA

先执行下面的命令安装相关依赖,否则会出现 Missing recommended library 错误。

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

这时还可能报如下图错误

在ubuntu上安装多个版本的CUDA,并且可以随时切换

可以尝试执行 sudo apt-get updatesudo apt-get upgrade –fix-missing,如果报如下图错误或者还是无法安装相关依赖。
解决方案为 手动下载或者 更换软件源(我的选择)

(1)手动下载
在使用上述方法后还是无法下载,出现的报错信息如下所示:

在ubuntu上安装多个版本的CUDA,并且可以随时切换
直接在浏览器中尝试打开无法下载的这个deb链接,自动弹出了下载页面,如下图所示:
在ubuntu上安装多个版本的CUDA,并且可以随时切换

那就很简单了,直接下载保存,默认应该是直接下载到”下载”文件夹下了。然后,打开该文件所在目录,打开一个终端,执行如下命令,将下载的deb文件(依据自己包的名称进行修改)放到ubuntu apt-get下载文件存放的目录(即 /var/cache/apt/archives )下,这样在install的时候,就能被自动检测到了。

sudo mv libflite1_2.1-release-3_amd64.deb /var/cache/apt/archives

完成后,再次执行安装命令:

sudo apt install ffmpeg

如果显示页面载入出错,链接被重置等问题,如下图所示:

在ubuntu上安装多个版本的CUDA,并且可以随时切换

看下一个方法吧。

(2)更换软件源
如果链接真的不存在,那有可能是链接更新了,但是源里的链接没有同步更新了导致的。既然这个源行不通,那我们就换一个源试试。打开软件和更新,在ubuntu软件页面下,可以看到有下载自这个选项:

在ubuntu上安装多个版本的CUDA,并且可以随时切换
现在使用的源在这里名为”中国 的服务器”,点开下拉列表,选择其他站点,可以看到有很多选项:
在ubuntu上安装多个版本的CUDA,并且可以随时切换
在ubuntu上安装多个版本的CUDA,并且可以随时切换
在ubuntu上安装多个版本的CUDA,并且可以随时切换
更换后在终端执行如下命令进行更新: sudo apt-get update
如果还是没法安装,就多换几次源尝试,总有一个适合你(当然也可能都不行,直接放弃)

回到正题,安装cuda

在安装包所在目录下输入指令 sudo sh XXX 进行安装,如:sudo sh cuda_11.4.0_470.42.01_linux.run

注:如图中一样选择就行。

在ubuntu上安装多个版本的CUDA,并且可以随时切换
在ubuntu上安装多个版本的CUDA,并且可以随时切换
按空格根据需要选择要安装的模块,有”X”的表示安装,没有的表示不安装,我这里已经安装过418.116的显卡驱动了,所以选择不安装驱动 ( 最终的结果和此处的图一致,如果不一致请保持一致的选择):
在ubuntu上安装多个版本的CUDA,并且可以随时切换
按上下键移动到CUDA Toolkit 10.1上,然后按”A”键,出现:
在ubuntu上安装多个版本的CUDA,并且可以随时切换
全部不安装并更改Toolkit Install Path:
在ubuntu上安装多个版本的CUDA,并且可以随时切换
再返回主界面然后选择Options->Library install path:
在ubuntu上安装多个版本的CUDA,并且可以随时切换
在ubuntu上安装多个版本的CUDA,并且可以随时切换
然后确定,返回选择Install

四、配置cuDNN

使用指令 tar -xzvf /home/zb/cuda/cudnn-8.0-linux-x64-v7.1.tgz -C /home/zb/cuda/tem/ 将cuDNN解压到tem文件夹并执行以下指令

cp /home/zb/cuda/tem/cuda/include/cudnn.h  /home/zb/cuda/cuda-8.0/include/
cp /home/zb/cuda/tem/cuda/lib64/libcudnn*  /home/zb/cuda/cuda-8.0/lib64
chmod a+r /home/zb/cuda/cuda-8.0/include/cudnn.h  /home/zb/cuda/cuda-8.0/lib64/libcudnn*

五、cuda多个版本的切换

在安装了多个cuda版本后,可以在/usr/local/目录下查看自己安装的cuda版本。

在ubuntu上安装多个版本的CUDA,并且可以随时切换
这里,cuda-11.0和cuda-11.4就是我们安装的两个cuda版本了,而cuda是一个软链接,它指向我们指定的cuda版本(注意上面在设置环境变量时,使用的是cuda,而不是cuda-11.0和cuda-11.4,这主要是为了方便我们切换cuda版本,可以让我们不用每次都去该环境变量的值)
可以使用stat命令查看当前cuda软链接指向的哪个cuda版本
在ubuntu上安装多个版本的CUDA,并且可以随时切换
可以看到,文件类型是symbolic link,而指向的目录正是/usr/local/cuda-11.4,当我们想使用cuda-11.0版本时,只需要删除该软链接,然后重新建立指向cuda-11.0版本的软链接即可(注意名称还是cuda,因为要与bashrc文件里设置的保持一致)
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-11.4 /usr/local/cuda

想切换其他版本的cuda,只需要改动建立软链接时cdua的正确路径即可。

六、配置用户环境变量

(1)不使用上述的多个版本切换
修改个人用户目录下的.bashrc文件, sudo gedit ~/.bashrc

export PATH=/home/zb/cuda/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/home/zb/cuda/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

(2)使用上述的多个版本切换
修改个人用户目录下的.bashrc文件, sudo gedit ~/.bashrc

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

最后输入指令 source .bashrc 使新配置的环境变量生效.

相关命令

查看cuda版本 : nvcc -V
查看位置 : which nvcc
查看NVIDIA动态使用情况: watch -n 1 nvidia-smi
cuda 版本 : cat /usr/local/cuda/version.txt
cudnn 版本 : cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
NVIDIA 驱动版本 : cat /proc/driver/nvidia/version

参考链接

1,https://blog.csdn.net/hizengbiao/article/details/88625044
2,https://blog.csdn.net/ksws0292756/article/details/80120561
3,https://blog.csdn.net/qq_34638161/article/details/80845366
4,https://blog.csdn.net/ksws0292756/article/details/80120561
5,https://blog.csdn.net/weixin_44120025/article/details/122317808
6,https://www.cnblogs.com/Uni-Hoang/p/12901597.html

Original: https://blog.csdn.net/qq_39637158/article/details/124899569
Author: Yesterday_萝卜
Title: 在ubuntu上安装多个版本的CUDA,并且可以随时切换

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/706113/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球