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

本文详细讲述了在服务器环境中遇到CUDA版本混乱的问题,如何通过检查nvcc指向、环境变量PATH调整、软链接管理来确保nvcc指向期望的CUDA版本。重点在于理解PATH优先级和如何切换CUDA版本以满足开发需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发现问题

服务器里面装了很多个版本的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 ,多版本之间切换

要更改nvcc编译器支持的CUDA版本,您可以按照以下步骤进行操作: 1. 首先,确定您的系统上已经安装了所需的CUDA版本。您可以从NVIDIA官方网站下载适合您的操作系统的CUDA版本,并按照官方文档进行安装。 2. 打开命令提示符或终端窗口,并导航到CUDA安装目录下的bin文件夹。默认情况下,CUDA安装目录位于"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA"(对于Windows)或"/usr/local/cuda"(对于Linux)。 3. 运行以下命令来检查当前nvcc编译器支持的CUDA版本: ``` nvcc --version ``` 4. 然后,根据您想要的CUDA版本,找到相应的安装目录。例如,假设您想要将nvcc编译器切换到CUDA 10.2版本- 对于Windows用户,如果您安装的是默认路径的CUDA版本,则切换到以下目录: ``` cd "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin" ``` - 对于Linux用户,如果您使用apt-get或yum等包管理器安装了CUDA,则切换到以下目录: ``` cd /usr/local/cuda-10.2/bin ``` 5. 运行以下命令以更改nvcc编译器的支持版本: ``` mv nvcc nvcc_old # 备份现有的nvcc二进制文件 ln -s nvcc_old nvcc # 创建一个符号链接,将其命名为nvcc ``` 6. 现在,您应该已经成功更改了nvcc编译器支持的CUDA版本。您可以再次运行以下命令来检查版本是否已更改: ``` nvcc --version ``` 请注意,更改nvcc支持的CUDA版本可能会导致与其他CUDA工具链组件的不兼容性。因此,在更改版本之前,请确保您的系统上已经安装了所需的CUDA版本,并且您已经备份了原始的nvcc二进制文件。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值