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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新游启航 失落的方舟台服注册指南 一文教会你方舟台服注册

新游启航!失落的方舟台服注册指南!一文教会你方舟台服注册 失落的方舟作为本月最受期待游戏之一,在上线之际许多玩家已经有点急不可待了。这款游戏是由开发商Smile gate开发的一款MMORPG类型游戏,这款游戏的基本玩法与其他MMORPG…

理解AdaBoost算法:简单流程概述(一)【流程理解、无数学推导】

什么是AdaBoost 算法? AdaBoost(Adaptive Boosting)算法,全称为 自适应提升 ,是 一种在机器学习中用作集成方法的提升技术 。它之所以被称为自适应提升,因为每个实例的权重会重新分配,错误分类…

前端面试题日常练-day47 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末 1. 在Bootstrap中,以下哪个类用于创建一个具有响应式的栅格系统? a) .grid-system b) .responsive-grid c) .container-fluid d) .grid-responsive 2. 哪个Bootstrap类用于创…

Python 关于编码与解码

在Python中,字符串的编码和解码是处理字符串与字节之间转换的重要操作。 常见的字符串编码方式包括以下几种: ASCII 编码(American Standard Code for Information Interchange):ASCII 是最早的字符编码标准&#xf…

推荐一个远程数据库 Supabase

地址:Supabase | The Open Source Firebase Alternative 使用文档: Supabase Docs

IO进程线程(三)文件IO之open/close read/write lseek

一、文件IO (一)概念 文件IO就是系统调用,用户空间进入内核空间的过程就是系统调用。 系统调用没有缓冲机制,效率较低,可移植性也相对较差,实时性高。 文件描述符是使用open函数打开文件时的返回值&…

NIUSHOP开源商城单商户V6版本:前端技术架构的深度解析

摘要: 本文将对NIUSHOP开源商城单商户V6版本的前端技术架构进行深度解析。NIUSHOP V6版本以其强大的多应用多插件组合设计理念、前后端完全分离的技术架构,以及支持多语言、多平台等特点,受到了市场的广泛好评。本文将详细介绍其前端技术栈的…

HOW - BFF 服务实践系列(一)

目录 一、BFF 介绍1.1 BFF 的概念1.2 为什么需要 BFF1.3 举例说明 二、适用于Web前端的BFF应该提供哪些能力2.1 接口聚合(重要)2.2 简化和优化的API2.3 安全和身份验证(重要)2.4 缓存机制2.5 错误处理和重试机制2.6 数据格式转换2…

【算法】贪心算法简介

贪心算法概述 目录 1.贪心算法概念2.贪心算法特点3.贪心算法学习 1.贪心算法概念 贪心算法是一种 “思想” ,即解决问题时从 “局部最优” 从而达到 “全局最优” 的效果。 ①把解决问题的过程分为若干步②解决每一步时候,都选择当前最优解(不关注全局…

RDD实战:排序算子 - sortBy()

在本实战案例中,我们将使用Apache Spark的sortBy()算子来对一个包含学生信息的RDD进行排序操作。 排序规则如下: 首先按照性别升序排列。在性别相同的情况下,按照年龄降序排列。 步骤1:创建学生信息列表 首先,我们创…

基于51单片机和NRF24L01的无线温度监控设计

一、设计功能 由单片机、温度传感器、无线模块NRF24L01以及液晶显示器等构成高精度远 程无线温度监测系统。 温度显示精确到小数点后一位。 按键设定过温值,过温在液晶屏提示。 系统设计 三、器件选择3.1温度信号采集模块 传统的温度检测大多以热敏电阻为传感器&a…

【C++】list的使用(上)

🔥个人主页: Forcible Bug Maker 🔥专栏: STL || C 目录 前言🌈关于list🔥默认成员函数构造函数(constructor)析构函数(destructor)赋值运算符重载 &#x1…

从技术底层超主层依次介绍大模型

目录 # 如何让大模型更聪明? 一、GPT大模型基本概念 二、大模型生态介绍 三、简单描述如何让大模型变得更加聪明 # 如何让大模型更聪明? 一、GPT大模型基本概念 前景: 40年一遇的技术变革;被优化的人口,在未来十…

五分钟“手撕”栈

实现代码放开头,供大家学习与查阅 目录 一、实现代码 二、什么是栈 三、栈的常见操作 底层实现是链表。 入栈 出栈 四、Stack的使用 五、栈的习题 第一题 第二题 第三题 第四题 第五题 第六题 第七题 六、栈、虚拟机栈、栈帧的区别 目录 一、…

Request

一、Request介绍 在计算机网络中,"Request"(请求)通常指的是客户端向服务器发送的请求消息,用于获取特定资源或执行特定操作。在Web开发中,"Request"通常指的是HTTP请求,用于客户端与服…

速盾:香港服务器可以用cdn吗?

香港是一个互联网发达的地区,拥有优质的网络基础设施和大量的服务器机房。对于网站和应用开发者来说,选择一个合适的服务器位置是十分重要的。CDN(内容分发网络)是一种能够通过分布在全球各地的服务器节点来加速访问速度的技术&am…

信号稳定,性能卓越!德思特礁鲨系列MiMo天线正式发布!

作者介绍 礁鲨系列天线,以其独特的外观设计和强大的性能,成为德思特Panorama智能天线家族的最新成员。这款天线不仅稳定提供5G、WIFI和GNSS信号,更能在各类复杂环境中展现出卓越的性能。它的设计灵感来源于海洋中的礁鲨,象征着力量…

内存管理【C++】

内存分布 C中的内存区域主要有以下5种 栈(堆栈):存放非静态局部变量/函数参数/函数返回值等等,栈是向下增长的【地址越高越先被使用】。栈区内存的开辟和销毁由系统自动执行 堆:用于程序运行时动态内存分配&#xff…

电脑丢失api-ms-win-crt-runtime-l1-1-0.dll的多种修复方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“api-ms-win-crt-runtime-l1-1-0.dll丢失”。这个错误通常发生在Windows操作系统中,它表示一个动态链接库文件丢失或损坏。这个问题可能会导致某些应用程序无法正常运行&#xf…

前端面试题:var const let的区别

1 作用域 var声明的变量具有函数级作用域,这意味着它们在全局作用域或函数内部都有效,且可以被全局访问。 let和const声明的变量具有块级作用域,这意味着它们只在声明它们的代码块内有效,不能跨块或跨函数访问。 2 变量提升 va…