多个版本的CUDA在Ubuntu上的共存与管理
在Linux系统上,允许某些工具和软件存在多个不同的版本共存,以便满足不同的开发环境需求。因此,学会如何安装和管理这些工具或者软件的方法有时候也很重要。而在实际开发过程中,CUDA的版本五花八门。为了满足特定的开发环境,通常需要装配不同版本的CUDA。
在已经安装了CUDA 11.1的情况下,由于开发部署需要安装CUDA 10.2,而不想舍弃原有的版本,可以这样做。
下载特定版本
直接通过搜索引擎找到对应版本的下载地址即可,10.2版本的可见此处。需要注意的是最好选择runfile(.sh)
文件,个人认为兼容性较高,出错概率可能会比较低。也可以直接通过下面的命令,自动获取CUDA 10.2的下载包。
1 | wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run |
安装
进入下载的目录,使用sudo sh
命令+该文件目录及其名称,即可运行。需要特别注意的是,当询问CUDA安装的内容时,一定要把Drivers里面的驱动取消选择。程序默认用X
勾选的,按下Enter
键即可消除。
完成安装之后,程序会返回一个Summary,里面会提示Driver是没有被选择的,只有CUDA的工具箱Toolkit选择了,这个是一定要安装的。
设置软连接方便切换(重点)
CUDA一般的安装目录在/usr/local
里面,因此进入该目录后,会发现这个目录里面已经存在两个或以上不同版本的CUDA,判断的方法就是文件夹的名称——一般都会采用cuda
+版本号
来命名这些文件夹。如果目录里面已经存在cuda
文件夹,则说明已经存在一个软链接,链接到特定版本的CUDA了。可以通过stat
命令查看这些关系。
1 | cd /usr/local |
如下面这个,cuda
已经链接到了版本为11.1的CUDA Toolkit里面了。
1 | File: cuda -> /usr/local/cuda-11.1 |
但是想要的是10.2版本的。只要删除原来的软链接,然后再建立一个新的链接,链接到10.2版本即可。可以使用ln
命令。
1 | rm -rf cuda |
检查环境变量
如果第一次安装CUDA,有些教程会直接把含有CUDA版本号的路径作为环境变量的一部分。由于我们建立了软链接,可以直接将相关的环境变量设置成含有软链接cuda
的,这样就能减少切换CUDA版本的工作量。
使用vim ~/.bashrc
进入环境变量的编辑模式之后,根据实际情况,新增或者设置下面三项。
1 | export PATH=/usr/local/cuda/bin:$PATH |
点按:wq
保存退出后,记得使用source ~/.bashrc
更新环境变量。
总结
纵观这些步骤,最主要的还是设置一个软链接,这个是实现版本自由切换的关键。而后只需在/usr/local
里面更新软链接就好。如果已经是多次安装不同版本的CUDA,在环境变量已经设置好了前提下,就不用重复检查CUDA相关的环境变量了。