不同linux账户切换不同的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版本不一样(强烈推荐 )。

下面介绍方法2的修改

修改步骤

1、查看默认的cuda版本

一般而言,默认会在/usr/local/下面创建一个软链接,指向某个cuda版本。

如下图

cd /usr/local 定位到目标夹

ls -al 即可查看,cuda指向的是10.1版本

我们来验证一下是不是所有的项目都默认采用cuda10.1编译器。

SAM环境中为cuda,(即指向cuda10.1)
yolov5环境中为cuda,(即指向cuda10.1)

2、修改 ~/.bashrc 文件

vim ~/.bashrc

加上下列代码,保存。(我是想将默认的cuda软链接路径,改成cuda11.1,根据你自己的cuda版本自行修改)

3、验证是否切换成功

修改好了.bashrc 文件后,必须要
source ~/.bashrc
重置环境才生效
。也可以切换到其他环境,再切换回来,总之就是要重置 ~/.bashrc 一次。

yolov5环境的cuda版本切换成功。

SAM环境的cuda版本也切换成功。虽然刚刚修改 .bashrc的操作是在yolov5环境下,但是因为 .bashrc 是针对该账户的,因此登录该账户的所有conda环境都会改变cuda版本。

大功告成

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

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

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

相关推荐
万米商云11 分钟前
企业物资集采平台解决方案:跨地域、多仓库、百部门——大型企业如何用一套系统管好百万级物资?
大数据·运维·人工智能
大模型真好玩17 分钟前
准确率飙升!GraphRAG如何利用知识图谱提升RAG答案质量(额外篇)——大规模文本数据下GraphRAG实战
人工智能·python·mcp
198918 分钟前
【零基础学AI】第30讲:生成对抗网络(GAN)实战 - 手写数字生成
人工智能·python·深度学习·神经网络·机器学习·生成对抗网络·近邻算法
applebomb28 分钟前
没合适的组合wheel包,就自行编译flash_attn吧
python·ubuntu·attention·flash
jjkkzzzz42 分钟前
Linux下的C/C++开发之操作Zookeeper
linux·zookeeper·c/c++
二当家的素材网43 分钟前
Centos和麒麟系统如何每天晚上2点10分定时备份达梦数据库
linux·数据库·centos
挑战者66688843 分钟前
CentOS 系统高效部署 Dify 全攻略
linux·运维·centos
Chasing__Dreams1 小时前
python--杂识--18.1--pandas数据插入sqlite并进行查询
python·sqlite·pandas
DD_陈东东1 小时前
gdbus 常用数据结构与库函数
linux
彭泽布衣2 小时前
python2.7/lib-dynload/_ssl.so: undefined symbol: sk_pop_free
python·sk_pop_free