2.多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的
多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的发现问题解决问题*修改环境变量PATH流程1.查看当前nvcc –V指向哪里的nvcc2.查找原因,为什么没有指向软链接好的地方3.排除问题4.成功解决所以,接下来想用什么版本的cuda,都可以通过更改软链接的方式,直接指向想要用的cuda版本即可更改软链接cuda版本参考帖发现问题服务器里面装了很多个版本的cuda.
多个cuda共存,解决nvcc –V查看的cuda版本不是软链接的cuda对应的
发现问题
服务器里面装了很多个版本的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的帮助。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)