在 CentOS 系统上配置 CUDA 环境用于深度学习,通常分为以下几个关键步骤。以下流程基于 CentOS 7/8(推荐版本),假设你使用的是 NVIDIA GPU 并计划安装 PyTorch/TensorFlow 等深度学习框架。
✅ 前提条件
-
NVIDIA 显卡驱动已安装且版本与 CUDA 兼容
- 检查驱动:
nvidia-smi - 若未安装,需先通过官方 RPM 或
akmod-nvidia安装对应驱动
(参考:https://developer.nvidia.com/cuda-downloads)
- 检查驱动:
-
确认 CUDA Toolkit 版本需求
- 查看你计划使用的深度学习框架(如 PyTorch 2.3)推荐的 CUDA 版本
(例如:PyTorch 2.3 + cu121 → 需要 CUDA 12.1 或兼容版本) - 注意:CUDA Toolkit 版本 ≥ 驱动支持的最高版本(但可向下兼容)
- 查看你计划使用的深度学习框架(如 PyTorch 2.3)推荐的 CUDA 版本
🔧 步骤一:卸载旧版 CUDA(如有冲突)
# 查找已安装的 cuda 包
rpm -qa | grep cuda
# 卸载(谨慎操作,保留驱动!)
sudo yum remove cuda-<version>
# 或手动清理 /usr/local/cuda* 目录
sudo rm -rf /usr/local/cuda-*
⚠️ 不要删除
/usr/lib64/nvidia-current或驱动相关库,仅移除cuda-*包及/usr/local/cuda软链接。
📦 步骤二:安装 CUDA Toolkit(推荐方式)
方法 A:使用 NVIDIA 官方 .run 文件(灵活,适合自定义路径)
-
从官网下载对应版本(如
cuda_12.3.0_545.29.02_linux.run)
👉 https://developer.nvidia.com/cuda-downloads
选择:Linux → x86_64 → CentOS 7/8 → runfile (local) -
赋予执行权限并运行:
chmod +x cuda_12.3.0_545.29.02_linux.run sudo ./cuda_12.3.0_545.29.02_linux.run- 按提示选择:
- ❌ Driver(已由系统驱动管理,选 No)
- ✅ Toolkit、Samples、Documentation(按需勾选)
- 安装路径建议:
/usr/local/cuda-12.3(避免覆盖默认/usr/local/cuda)
- 按提示选择:
-
配置环境变量(写入
~/.bashrc或/etc/profile.d/cuda.sh):export PATH=/usr/local/cuda-12.3/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64:$LD_LIBRARY_PATH echo "export PATH=/usr/local/cuda-12.3/bin:$PATH" >> ~/.bashrc echo "export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64:$LD_LIBRARY_PATH" >> ~/.bashrc source ~/.bashrc -
验证:
nvcc --version nvidia-smi # 应显示 CUDA 版本(注意:此处是驱动支持的 max version)
方法 B:使用 yum/dnf 安装(更简洁,适合生产环境)
CentOS 8+ 可使用 EPEL + NVIDIA repo:
# 添加 NVIDIA repo(以 CUDA 12.3 为例)
wget https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-repo-rhel8-12-3-local_12.3.0-545.29.02-1.x86_64.rpm
sudo dnf install cuda-repo-rhel8-12-3-local_12.3.0-545.29.02-1.x86_64.rpm
sudo dnf clean all
sudo dnf install cuda-toolkit-12-3
# 设置环境变量(同上)
echo 'export PATH=/usr/local/cuda-12.3/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
💡 提示:
yum安装的默认路径为/usr/local/cuda-12.3,需手动设软链接(可选):sudo ln -sf /usr/local/cuda-12.3 /usr/local/cuda
🧪 步骤三:验证 CUDA 编译能力
# 编译简单示例
cat > test.cu << 'EOF'
#include <stdio.h>
int main() {
printf("Hello from CUDA!n");
return 0;
}
EOF
nvcc test.cu -o test && ./test
若输出 Hello from CUDA!,说明编译成功。
🤖 步骤四:安装深度学习框架(以 PyTorch 为例)
根据 CUDA 版本选择匹配的安装命令:
# 示例:PyTorch 2.3 + CUDA 12.1
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# 或 conda(推荐隔离环境)
conda create -n pytorch-cuda121 python=3.10
conda activate pytorch-cuda121
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
✅ 验证:
import torch
print(torch.__version__)
print(torch.version.cuda) # 应为 12.1
print(torch.cuda.is_available()) # True
print(torch.cuda.get_device_name(0))
🔐 常见问题排查
| 问题 | 解决方案 |
|---|---|
nvcc: command not found |
检查 $PATH 是否包含 bin 目录;重新 source ~/.bashrc |
libcudart.so not found |
确保 LD_LIBRARY_PATH 正确;可用 ldconfig -p | grep cudart 检查 |
CUDA error: no kernel image is available for execution |
代码中 --generate-code 参数不匹配;升级 nvcc 或调整 -arch |
| PyTorch 无法识别 GPU | 确认 torch.version.cuda 与系统 nvcc --version 一致;重装匹配版本的 PyTorch |
📌 最佳实践建议
- 使用 Conda 虚拟环境 隔离不同 CUDA/框架版本项目
- 定期更新驱动(但保持 CUDA Toolkit 版本稳定)
- 生产环境优先用
yum/dnf安装,便于统一维护 - 记录所用组合:
Driver Version+CUDA Toolkit+PyTorch+Python
需要我为你生成一个完整的自动化脚本(含版本检测与一键部署),或针对特定框架(如 TensorFlow、LLaMA.cpp)定制配置吗?
PHPWP博客