给某个conda环境安装CUDA 12.4版本 全局CUDA不变

文章目录

    • 🎯 正确的安装命令
    • 📋 为什么这个命令安全?
    • ⚠️ 重要说明
    • 🔧 安装后环境配置
      • 方法一:在虚拟环境中设置
      • 方法二:使用conda环境变量
    • 🧪 验证安装
    • 📊 版本共存确认
    • 💡 额外安全措施
      • 一、检验CUDA 12.4安装是否成功
      • 二、在conda环境`time_moe_cls`中使用CUDA 12.4
        • 1. 激活目标环境
        • 2. 配置环境变量(仅在当前环境生效)
        • 3. 重新激活环境使配置生效
        • 4. 验证环境变量是否生效
      • 三、测试FlashAttention安装(最终验证)
      • 关键说明

官网地址 https://developer.nvidia.cn/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=runfile_local

下载runfile

非常好!从帮助信息可以看到,这个CUDA安装器使用的是双横线 -- 选项,但不支持 --no-driver--no-samples 这样的否定选项。

🎯 正确的安装命令

# 创建目标目录(确保路径存在)
sudo mkdir -p /mnt/data/test1/cuda_1204# 只安装Toolkit到指定路径(不安装驱动和内核对象)
sudo sh cuda_12.4.1_550.54.15_linux.run --toolkit --toolkitpath=/mnt/data/test1/cuda_1204 --silent

📋 为什么这个命令安全?

选项作用为什么安全
--toolkit只安装CUDA Toolkit不会安装驱动,不影响现有驱动
--toolkitpath指定自定义安装路径不会覆盖 /usr/local/cuda
--silent静默安装,自动接受协议无需交互,避免误操作

⚠️ 重要说明

这个安装器没有提供 --no-driver 选项,但是:

  • 如果你不指定 --driver,它默认不会安装驱动
  • 如果你不指定 --kernelobjects,它默认不会安装内核对象

🔧 安装后环境配置

安装完成后,在你的特定环境中设置环境变量:

方法一:在虚拟环境中设置

# 在你的虚拟环境激活脚本中添加
export CUDA_HOME=/mnt/data/test1/cuda_1204
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

方法二:使用conda环境变量

# 创建环境变量设置脚本
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'export CUDA_HOME=/mnt/data/test1/cuda_1204' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
echo 'export PATH=$CUDA_HOME/bin:$PATH' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
echo 'export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH' >> $CONDA_PREFIX/etc.conda/activate.d/env_vars.sh

🧪 验证安装

# 验证自定义CUDA版本
/mnt/data/test1/cuda_1204/bin/nvcc --version# 验证全局CUDA版本(应该仍然是11.8)
/usr/local/cuda/bin/nvcc --version# 检查安装内容
ls -la /mnt/data/test1/cuda_1204/

📊 版本共存确认

项目全局版本你的自定义版本
路径/usr/local/cuda/mnt/data/test1/cuda_1204
版本11.812.4
影响范围所有用户仅你的环境使用
修改风险无风险无风险

💡 额外安全措施

如果你想要绝对确保不会影响系统,可以:

# 1. 先备份当前的CUDA配置
sudo cp /usr/local/cuda /usr/local/cuda.backup# 2. 安装前检查磁盘空间
df -h /mnt/data/# 3. 安装后立即验证全局版本是否正常
/usr/local/cuda/bin/nvcc --version

这个命令完全能够满足你的需求:为特定环境安装CUDA 12.4,完全不影响全局的11.8版本。安装器会只安装Toolkit到你指定的自定义路径,不会触碰系统的CUDA安装。

一、检验CUDA 12.4安装是否成功

执行以下命令验证安装结果:

# 1. 检查安装目录是否存在
ls -ld /mnt/data/test1/cuda_1204# 2. 查看nvcc版本(需指定完整路径,因为尚未配置环境变量)
/mnt/data/test1/cuda_1204/bin/nvcc --version

若输出类似以下内容,说明安装成功:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on ...
Cuda compilation tools, release 12.4, V12.4.152
...

二、在conda环境time_moe_cls中使用CUDA 12.4

按以下步骤配置,确保仅该环境使用CUDA 12.4:

1. 激活目标环境
conda activate time_moe_cls
2. 配置环境变量(仅在当前环境生效)
# 创建conda环境的激活配置目录
mkdir -p $CONDA_PREFIX/etc/conda/activate.d# 写入CUDA 12.4的路径配置(仅激活该环境时生效)
cat << EOF >> $CONDA_PREFIX/etc/conda/activate.d/cuda_env.sh
export PATH=/mnt/data/test1/cuda_1204/bin:\$PATH
export LD_LIBRARY_PATH=/mnt/data/test1/cuda_1204/lib64:\$LD_LIBRARY_PATH
EOF
3. 重新激活环境使配置生效
conda deactivate && conda activate time_moe_cls
4. 验证环境变量是否生效
# 检查nvcc版本(此时无需指定完整路径)
nvcc --version  # 应显示12.4版本# 检查路径是否正确
echo $PATH | grep cuda_1204  # 应包含/mnt/data/test1/cuda_1204/bin
echo $LD_LIBRARY_PATH | grep cuda_1204  # 应包含/mnt/data/test1/cuda_1204/lib64

三、测试FlashAttention安装(最终验证)

time_moe_cls环境中重新安装FlashAttention,确认其使用CUDA 12.4编译:

# 卸载可能存在的旧版本
pip uninstall -y flash-attn# 重新安装(会自动使用当前环境的CUDA 12.4)
MAX_JOBS=16 pip install flash-attn==2.6.3 --no-build-isolation

若安装成功且无CUDA版本错误,说明整个配置完成。

关键说明

  • 只有激活time_moe_cls环境时,才会使用CUDA 12.4;退出环境后,系统仍默认使用CUDA 11.8,不影响其他用户。
  • 若后续其他conda环境也需要使用CUDA 12.4,重复步骤2中的配置即可。

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

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

相关文章

【C++】日期类实现详解:代码解析与复用优化

代码总览与总结// 实现一个完善的日期类 class Date { public:int GetMonthDay(int year, int month){int monthDays[13] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };// 闰年2月if (month 2 && ((year % 4 0 && year % 100 ! 0) || year % 400 0))return …

零基础json入门教程(基于vscode的json配置文件)

一、什么是 JSON&#xff1f;—— 最核心的概念JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;长得像键值对的集合&#xff0c;用途是存储和传递数据。在 VS Code 中&#xff0c;它常被用来写配置文件&#xff08;比如调试配置…

深入对比分析SpringCloud和Dubbo两大微服务框架的核心架构与特性。

1 微服务架构演进与核心概念1.1 微服务架构的本质微服务架构是一种将单一应用程序划分为一组小型服务的方法&#xff0c;每个服务运行在自己的进程中&#xff0c;服务之间通过轻量级的通信机制进行协作。这些服务围绕业务能力构建&#xff0c;并能够独立部署到生产环境中。微服…

鸿蒙ArkTS 核心篇-14-条件表达式(三目运算符)

目录 根据逻辑条件结果&#xff0c;执行不同的表达式&#xff0c;得到不同结果 DevEco Studio代码实战 ctrl s 日志输出 总结 根据逻辑条件结果&#xff0c;执行不同的表达式&#xff0c;得到不同结果 DevEco Studio代码实战 let num1: number 100 let num2: number 20l…

CDH集成LDAP进行身份验证

前言&#xff1a;在内网环境中部署LDAP并在CDH的hive和impala中集成&#xff0c;其中配置的端口&#xff0c;镜像名&#xff0c;密码等需要根据自己情况进行更改 1、镜像下载 在有网络的服务器上下载镜像或直接下载&#xff0c;这里需要自行配置下docker镜像下载地址 # 下载…

并发编程:Java中的多线程与线程池!

全文目录&#xff1a;开篇语线程的基础概念线程生命周期线程调度线程安全线程池&#xff1a;Executor框架、线程池的管理与调优Executor框架线程池的管理与调优并发工具类&#xff1a;ReentrantLock、CountDownLatch、CyclicBarrier等ReentrantLockCountDownLatchCyclicBarrier…

语义分割一站式到底怎么玩?

语义分割模型&#xff0c;复现或改进、对比实验&#xff0c;&#xff0c;欢迎交流&#xff0c;完爆各种详细需求1、可以接以下语义分割模型dai做 DeepLabV3、PSPnet、HRnet、Segformer、Unet、u2net、cenet、erfnet、hcanet、hiformer、uiunet、nnunet、saunet、unext、dscnet、…

由于不对称GND过孔配置,差分信号过孔上的差模到共模转换

本文研究了靠近高速差分信号过孔的接地过孔的影响以及由此产生的差模到共模的转换。该工作显示了接地 &#xff08;GND&#xff09; 过孔和差分信号之间距离的影响 &#xff08;Diff. SIG.&#xff09;;GND过孔不对称配置的影响;介电厚度和平面之间跃迁次数的影响。 印刷电路板…

Axios 实例配置指南

今天分享一段 Axios 实例配置的代码&#xff0c;用于 Web Front - End 项目的构建。 一、为什么使用 Axios 在前端项目中&#xff0c;与后端进行数据交互是必不可少的。Axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;它提供了简洁的 API 和强大的功能&#xff0c;能够方…

分分合合,门模块方案又兴起了

文章目录前言1.方案概述1.1 功能需求1.2 框图2.供电和通信2.1 理想二极管控制器2.2 SBC2.3 高边开关3.门模块PCBA3.1 后视镜3.2 车窗和电动门4.车锁控制PCBA5.氛围灯PCBA6.未来趋势前言 最近接触了一些之前做门锁、门控、BCM的客户&#xff0c;发现他们或多或少都在做一些门模…

AWD相关知识

AWD AWD&#xff1a;Attack With Defence&#xff0c;即攻防对抗&#xff0c;比赛中每个队伍维护多台服务器&#xff08;一般两三台&#xff0c;视小组参赛人数而定&#xff09;&#xff0c;服务器中存在多个漏洞&#xff08;web层、系统层、中间件层等&#xff09;&#xff0c…

基于CNN(卷积神经网络)的门牌号识别

1、官网下载SVHN数据集svhn是数据集&#xff0c;Dataset2、HOG特征3、支持向量机 SVM(Support Vector Machine&#xff0c;SVM) 分类器4、cv2需要导入 pip install opencv-python5、HOG特征提取5.1 伽马校正归一化预补偿反归一化无伽马校正有伽马校正5.2 灰度化5.3 图像梯度计…

使用LLAMA_cpp_python进行qwen2.5-vl-7b-instruct进行推理

目标&#xff1a;使用python的llama_cpp运行qwen2.5vl模型实现提交图片和文本回答文本效果 遇到的问题&#xff1a; 和提交信息的判断关键点llama.cpp 作为一个用 C/C 编写的轻量级大语言模型推理框架&#xff0c;让你能在各种硬件上高效运行模型。它通过降低部署和运行大模型的…

PDF,HTML,md格式文件在线查看工具

VUE3 实现了 PDF,HTML,md格式文件在线查看工具 在线体验地址: http://114.55.230.54/ 实现了一款漂亮的PDF,HTML,md格式文件在线查看网页工具 1、PDF预览1.1 实现代码 <script setup> import { ref, watch, computed } from vue// 状态管理 const files ref([]) // 存储…

CPP学习之map和set

1. 关联式容器 在之前博客中我们提到过序列式容器&#xff1a;vector, list, deque, forward_list等&#xff0c;其底层都是线性数据结构。 关联式容器存储的是键值对–<key, value>&#xff0c;与序列式容器仅存储值–key不一样&#xff0c;在数据检索时比序列式容器效…

深入理解C++中的移动赋值与拷贝赋值函数——兼论移动构造函数及其实际应用场景

技术博客&#xff1a;深入理解C中的移动赋值与拷贝赋值函数——兼论移动构造函数及其实际应用场景引言在C编程中&#xff0c;对象的赋值和构造操作是常见的需求。随着C11标准的引入&#xff0c;移动语义&#xff08;Move Semantics&#xff09;成为提升程序性能的重要手段之一。…

免费在线图片合成视频工具 ,完全免费

免费在线图片合成视频工具 &#xff0c;完全免费 免费在线图片合成视频工具是一个完全免费的图片生成视频网站、图片和音乐合成视频网站。 它完全免费&#xff0c;无需注册登录&#xff0c;可以轻松将多张图片转换为视频&#xff0c;支持 jpeg 、png 、webp 格式图片&#xf…

金仓数据库 V9 体验测评:AI 时代国产数据库 “融合” 架构的真实观察

【非广告声明】本文为本人基于金仓数据库 V9 的真实部署测试与技术拆解&#xff0c;无任何商业合作背景&#xff0c;未接受品牌方任何形式的推广委托或费用支持。写作核心是分享国产数据库在 “融合架构”“AI 赋能”“平滑迁移” 等关键场景下的实际使用体验 —— 包括技术细节…

EE进阶1:Maven和SpringBoot基本介绍

Maven什么是mavenMaven简单的理解就是一个项目管理工具&#xff0c;使用pom.xml文件进行管理和获取.jar包&#xff0c;而不用手动进行添加.jar包。创建maven项目以及使用Maven的功能非常多&#xff0c;这里主要理解Maven的项目创建和依赖管理。项目创建&#xff1a;maven本身是…

【系统架构设计(三)】系统工程与信息系统基础下:企业信息化与电子商务-数字化转型的核心驱动力

文章目录一、信息化的基本概念1、 信息化的定义与目的2、 信息化涉及的三大创新3、信息化需求的三个层次二、企业信息化六大方法体系三、信息系统战略规划方法1、 战略规划方法的演进2、 关键成功因素法&#xff08;CSF&#xff09;3、 战略集合转化法&#xff08;SST&#xff…