给某个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.8 | 12.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中的配置即可。