ubuntu多个版本的系统cuda切换指南
一、问题引入:
这个问题是在编译C++扩展包时遇到的。提示必须使系统cuda和torch-cuda的版本一致
经过查看,本机 torch-cuda 是11.8,而系统cuda是12.1。我要将系统cuda12.1修改为11.8
torch-cuda在环境中运行python后,输入torch.cuda.is_available()可查看其版本
系统cuda,在环境中输入nvcc --version 可查看其版本
这里系统cuda不是使用nvidia-smi查看的cuda driver版本,而是在usr/local下的系统cuda
二、新cuda下载
在ubuntu系统下,命令行输入代码就可以下载cuda版本
例如:下载cuda12.8,输入以下命令(只是示例,我安装的11.8)
1、wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
若权限不足,在前面加上sudo,可能是由于你的cd停留在usrlocal路径下,因此需要更高级别环境
2、
再输入sudo sh cuda_12.1.0_530.30.02_linux.run,进行安装。跳出的安装窗口如何进行操作,可结合其他cuda 安装教程
三、cuda切换
目前只是安装了新cuda,还未进行切换。
在命令行中输入ls -l /usr/local | grep cuda即可查看电脑中现有哪些系统cuda版本,我的是11.8、12.1,且软链接指向的cuda-11.8。(若直接修改环境变量,软链接指向哪都无所谓)
切换方法1(环境变量修改方法):
这个方法是最为硬核、最为直接的方法,输入sudo gedit ~/.bashrc来进入环境变量文件进行修改。
将所有的cuda12.1改为cuda11.8(一般在最底端),保存并退出文件。
可以看到我的环境变量是这些,若你的电脑上没有,可根据你的cuda版本添加上去。
接下来将所有的cuda-12.1改为cuda-11.8,有的是cuda改为cuda-11.8。
接下来再输入 nvcc --version 就可以看到cuda版本改为了cuda11.8
切换方法2(软链接修改方法)
同样,打开环境变量将所有的cuda12.1改为cuda即可,这样调用cuda的时候就会去到不同版本包的上级进行查找,并依据软链接进行指定包的调用。
修改软链接指定cuda:
cd /usr/local
ls #会看到有个cuda
stat cuda # 会看到当前链接指向哪里
# 目前,本电脑一共2个cuda,下面通过改变软链接改变指向。
cd /usr/local
sudo rm -rf cuda #删除软链接
sudo ln -s /usr/local/cuda-11.8 /usr/local/cuda #增加软链接
stat cuda
# 这样子,会显示指向11.8
再使用nvcc -version即可查看目前系统cuda的调用版本