不同conda环境切换不同的cuda版本

原因

由于服务器中安装了两个版本的cuda(cuda10.1和cuda11.1),不同项目可能需要应用不同的cuda版本,但是自己又没有root权限或者只想在使用指定conda环境时改为用指定的cuda版本。总结起来有三种方法:
1、修改软链接指向,但是这样会使得所有环境以及所有账户的cuda版本都改变,会影响其他人**(强烈不推荐)**
2、修改 ~.bashrc 文件(修改方法见“不同linux账户切换不同的cuda版本”),这样不会改变其他账户的cuda版本,但是自己账户下的所有conda环境都会改变cuda版本,有时候不同conda环境安装的torch版本不一样,用到的cuda版本也可能不一样。(不太推荐
3、增加env_vars.sh 文件 (修改方法见“不同conda环境切换不同的cuda版本”)。这样修改则是不同的conda环境使用的cuda版本不一样(强烈推荐)。
下面介绍方法3的修改

修改步骤

1、查看默认的cuda版本

一般而言,默认会在/usr/local/下面创建一个软链接,指向某个cuda版本。
如下图
cd /usr/local 定位到目标夹
ls -al 即可查看,cuda指向的是10.1版本
在这里插入图片描述
我们来验证一下是不是所有的项目都默认采用cuda10.1编译器。
SAM环境中为cuda,(即指向cuda10.1)
在这里插入图片描述yolov5环境中为cuda,(即指向cuda10.1)
在这里插入图片描述

2、创建activate.d目录和env_vars.sh文件

用下面命令创建activate.d目录,注意activate.d是文件夹,不是文件. $CONDA_PREFIX表示获取当前conda环境路径。

mkdir -p $CONDA_PREFIX/etc/conda/activate.d
vim $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
加上下列代码,保存。(我是想将默认的cuda软链接路径,改成cuda11.1,根据你自己的cuda版本自行修改)

在这里插入图片描述
确认是否创建好了env_vars.sh文件。
在这里插入图片描述

3、验证是否切换成功

创建好了env_vars.sh文件后,必须要
source ~/.bashrc
重置环境才生效
。也可以切换到其他环境,再切换回来,总之就是要重置 ~/.bashrc 一次。
yolov5环境的cuda版本切换成功。
在这里插入图片描述
SAM环境的cuda不变
在这里插入图片描述
大功告成

4、顺便提一句(torch编译时的cuda版本和运行时的cuda版本)

上面的 torch.utils.cpp_extension.CUDA_HOME 是运行时用到的cuda版本

torch.version 显示的是编译时用到的cuda版本

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值