发现问题

服务器里面装了很多个版本的cuda.
1.查看/usr/local里面 cuda 版本的软链接——cuda
在这里插入图片描述
进入/usr/local目录 使用 stat cuda命令,可以看到指向的是cuda-8.0版本。

stat cuda

在这里插入图片描述

2.一般情况下,nvcc –V查看的cuda版本就是软链接这里的8.0,但是查了之后发现,nvcc –V的是9.1:
在这里插入图片描述

解决问题

*修改环境变量PATH

流程

换了有管理员权限的账户进行操作的。

1.查看当前nvcc –V指向哪里的nvcc

在这里插入图片描述

2.查找原因,为什么没有指向软链接好的地方

查看环境变量path,命令:
echo $PATH
在这里插入图片描述
发现原因:是因为/usr/bin(①处)在PATH中相较/usr/local/cuda(②处)靠前,因此优先级高,所以nvcc –V命令会按照PATH顺序,先去①里面找,应该是在这文件夹里的nvcc中找到了9.1版本的cuda,所以就不去别的地方找了,就没有找到②处我们想要的cuda版本;

3.排除问题

首先,将/usr/bin/nvcc保存成其他格式的,会发现再调用nvcc –V命令会提示没有文件了:
:
其次,更改PATH内①和②顺序,采用的方法是将环境变量②位置提前:

export PATH=/usr/local/cuda/bin:$PATH

在这里插入图片描述
$PATH:如果PATH不为空,则指的是PATH原来的内容,在这里就是把PATH赋值给②+原来的PATH内容;如果PATH为空,则指的就是空内容。

4.成功解决

nvcc命令成功指向软链接/usr/local/cuda里面的cuda版本-8.0
在这里插入图片描述

所以,接下来想用什么版本的cuda,都可以通过更改软链接的方式,直接指向想要用的cuda版本即可

更改软链接cuda版本

因为我想要使用10.0的cuda,所以需要如下命令:作者:Maple2014 安装多版本 cuda ,多版本之间切换
在/usr.local目录下:

#切换cuda版本
rm -rf /usr/local/cuda #删除之前创建的软链接
sudo ln -s /usr/local/cuda-8.0/ cuda

最后文件名与参考帖有一点不同,其实没必要再加/usr/local/ 了,直接写cuda即可。
在这里插入图片描述
但是,服务器这里提示我没有权限,sudo rm删除旧的cuda版本需要我的账户有管理员权限,找同学用管理员账户给了我了管理员权限:
在这里插入图片描述
切换cuda版本:8.0→10.0,nvcc -V 查看转换成功!
在这里插入图片描述

参考帖

在此感谢实验室同学cw的帮助。

安装多版本 cuda ,多版本之间切换

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐