不同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版本

相关推荐
HiDev_5 分钟前
【非标自动化】2、认识元器件(运动控制模块)
运维·自动化
evans在进步14 分钟前
Spring Boot 工程化核心详解:Parent、Starter、热部署、事务与多数据源
spring boot·后端·python
一路向北finish22 分钟前
《CentOS 7 搭建 Hadoop 3.3.6 分布式集群:NFS 共享方案完整实操》
linux·运维·hadoop·分布式·centos
raindayinrain31 分钟前
深入理解Linux内核--缺页异常,写时复制
linux·写时复制·缺页异常
xiaoxiangsiyan33 分钟前
全网IPv6规模化改造实战指南
运维·网络·笔记·云原生·自动化
战略性的菠萝44 分钟前
学习笔记-Numpy知识
python·numpy
总有刁民想爱朕ha1 小时前
零基础Python开发「图片批量转MP4视频」工具,本地离线、免费无水印
开发语言·python·音视频
好评1241 小时前
【Linux】网络基础概念
linux·网络
捧 花1 小时前
FastAPI 基础语法:从一个完整接口理解 Web API 的设计
前端·python·fastapi·middleware
杨云龙UP1 小时前
Toad for Oracle 调整表空间 Datafile 大小:Usage、Used Pct of Max 与 RESIZE 实战
linux·运维·服务器·数据库·oracle·dba·数据库运维