2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的

多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的

  • 发现问题
  • 解决问题
    • *修改环境变量PATH
    • 流程
      • 1.查看当前nvcc –V指向哪里的nvcc
      • 2.查找原因,为什么没有指向软链接好的地方
      • 3.排除问题
      • 4.成功解决
  • 所以,接下来想用什么版本的cuda,都可以通过更改软链接的方式,直接指向想要用的cuda版本即可
    • 更改软链接cuda版本
  • 参考帖

发现问题

服务器里面装了很多个版本的cuda.
1.查看/usr/local里面 cuda 版本的软链接——cuda
2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的_第1张图片
进入/usr/local目录 使用 stat cuda命令,可以看到指向的是cuda-8.0版本。

stat cuda

2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的_第2张图片

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

解决问题

*修改环境变量PATH

流程

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

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

2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的_第3张图片

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

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

3.排除问题

首先,将/usr/bin/nvcc保存成其他格式的,会发现再调用nvcc –V命令会提示没有文件了:
2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的_第4张图片
其次,更改PATH内①和②顺序,采用的方法是将环境变量②位置提前:

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

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

4.成功解决

nvcc命令成功指向软链接/usr/local/cuda里面的cuda版本-8.0
2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的_第5张图片

所以,接下来想用什么版本的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即可。
2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的_第6张图片
但是,服务器这里提示我没有权限,sudo rm删除旧的cuda版本需要我的账户有管理员权限,找同学用管理员账户给了我了管理员权限:
在这里插入图片描述
切换cuda版本:8.0→10.0,nvcc -V 查看转换成功!
2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的_第7张图片

参考帖

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

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

你可能感兴趣的:(多个cuda切换版本,nvcc,-V,修改cuda软链接,cuda)