本文适用于:需要在 Linux / 服务器 / Docker / GPU 环境中安装 CUDA、NCCL、PyTorch 的工程同学
目标:快、稳、不踩坑
背景问题
在实际工程中,直接使用 conda install cudatoolkit nccl 经常会遇到:
• Solving environment 卡很久(十几分钟甚至卡死)
• conda-forge + CUDA 依赖回溯极慢
• pip / conda 混装导致 NCCL、CUDA 动态库异常
根因并不是网络慢,而是 conda 的 Python solver 在处理复杂依赖时性能不足。
解决方案总览
核心思路:用 mamba 替代 conda 作为安装器,但仍然使用 conda 的仓库和环境体系。
• conda:负责环境管理
• mamba:负责依赖求解 + 安装
Step 1:在 base 环境安装 mamba(一次性)
conda install -y -n base -c conda-forge mamba
说明:
• 只需要安装一次
• 建议装在 base 环境
• 后续所有环境都可以直接使用 mamba
验证:
mamba --version
Step 2:使用 mamba 安装 CUDA / NCCL(关键步骤)
mamba install -y -c conda-forge cudatoolkit=11.8 nccl
特点:
• 通常 10~30 秒内完成
• 不会长时间卡在 Solving environment
• 安装的是 conda-forge 官方包
Step 3:安装 PyTorch(推荐方式)
mamba install -y -c pytorch -c nvidia pytorch pytorch-cuda=11.8 torchvision
说明:
• PyTorch 官方推荐渠道
• CUDA / NCCL / PyTorch 版本强一致
• 避免 pip CUDA / pip NCCL 引发的动态库问题
Step 4:安装完成后的校验
1️⃣ 检查 NCCL 动态库
ldconfig -p | grep libnccl
期望输出类似:
libnccl.so.2 (libc6,x86-64) => <conda_env>/lib/libnccl.so.2
2️⃣ 检查 CUDA 是否可用(PyTorch)
python - <<EOF
import torch
print(torch.cuda.is_available())
print(torch.version.cuda)
EOF
为什么 mamba 这么快?(简要原理)
• conda solver:Python 实现,回溯搜索,单线程
• mamba solver:C++(libsolv),SAT 求解,多线程
一句话总结:conda 在"试",mamba 在"算"。
在 CUDA / NCCL 这种依赖极深的场景下,性能差距往往是 数量级。
强烈建议(工程实践总结)
✅ 推荐做法
• GPU 相关依赖:
◦ mamba install
◦ conda-forge / pytorch 官方渠道
• pip 只用于:
◦ 纯 Python 包
❌ 避免做法
• pip install nvidia-nccl-*
• pip install torch + conda CUDA 混用
• root 用户下反复 pip / conda 混装 GPU 栈
推荐使用模式(模板)
创建新环境(推荐)
mamba create -y -n gpu118 python=3.10
conda activate gpu118
GPU 栈
mamba install -y -c conda-forge cudatoolkit=11.8 nccl
mamba install -y -c pytorch -c nvidia pytorch pytorch-cuda=11.8 torchvision
业务依赖
pip install numpy pandas opencv-python
mamba 安装 PyTorch(CUDA / NCCL)完整流程总结
目标:在 Linux / 服务器 / GPU 环境中,用最快、最稳的方式安装 PyTorch(CUDA + NCCL 完整可用)
一句话结论
GPU 环境装 PyTorch:用 mamba,不用 conda solver,不用 pip