主题
⚙️ CUDA 与 cuDNN 配置
CUDA 版本选错,PyTorch 直接罢工——这是第二个大坑
什么是 CUDA 和 cuDNN
- CUDA:NVIDIA 的并行计算平台,让程序能调用 GPU 算力
- cuDNN:NVIDIA 的深度神经网络加速库,优化卷积、矩阵运算等 AI 核心操作
简单说:CUDA 是"让 GPU 能干活",cuDNN 是"让 AI 干活更快"。
版本兼容性(最重要!)
驱动版本、CUDA 版本、PyTorch 版本三者必须匹配。规则是:
驱动版本 ≥ CUDA 版本 ≥ PyTorch 需要的 CUDA 版本| 驱动版本 | 最高支持 CUDA | 推荐场景 |
|---|---|---|
| 535 | CUDA 12.2 | 老卡(20系及以前) |
| 550 | CUDA 12.4 | 30系推荐 |
| 560+ | CUDA 12.6 | 40系/50系 |
用 nvidia-smi 右上角可以看到当前驱动支持的 CUDA 版本。
安装 CUDA
方法一:runfile 安装(推荐,可多版本共存)
bash
# 下载 CUDA Toolkit
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
# 安装(注意:不要装驱动,用 --no-driver)
sudo sh cuda_12.4.0_550.54.14_linux.run --no-driver --silent --toolkit
# 添加环境变量
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc方法二:APT 安装(简单但只能装一个版本)
bash
sudo apt install nvidia-cuda-toolkit验证 CUDA
bash
nvcc --version
# 应输出:Cuda compilation tools, release 12.4, V12.4.131安装 cuDNN
cuDNN 需要注册 NVIDIA 开发者账号下载,但也可以用包管理器:
bash
# Ubuntu 22.04+
sudo apt install libcudnn8 libcudnn8-dev
# 或者用 conda(更省心)
conda install cudnnPyTorch 安装(版本匹配实战)
关键在于:去 PyTorch 官网查你的 CUDA 版本对应的安装命令。
bash
# CUDA 12.4 环境
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
# CUDA 11.8 环境(老卡兼容性更好)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118验证 PyTorch 能用 GPU
python
import torch
print(torch.cuda.is_available()) # 应为 True
print(torch.cuda.device_count()) # GPU 数量
print(torch.cuda.get_device_name(0)) # GPU 型号如果输出 False,说明版本不匹配,回去对驱动/CUDA/PyTorch 版本表。
多版本 CUDA 管理
同时需要 CUDA 11.8 和 12.4?用软链接切换:
bash
# 安装到不同路径
/usr/local/cuda-11.8/
/usr/local/cuda-12.4/
# 切换版本(改软链接)
sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-12.4 /usr/local/cuda或者直接用 conda 管理更省心。
常见报错
"CUDA out of memory"
显存不够了。解法:减小 batch_size、用梯度累积、或者换更大显存的卡。
"CUDA driver version is insufficient"
驱动版本太老,不支持这个 CUDA 版本。升级驱动即可。
"No CUDA-capable device is detected"
PyTorch 没找到 GPU。检查:nvidia-smi 能看到吗?torch 装的 cuda 版本对吗?
🎯 本章要点
- CUDA 让 GPU 能计算,cuDNN 让 AI 计算更快,版本三者必须匹配
- 驱动版本必须 ≥ CUDA 版本 ≥ PyTorch CUDA 版本
- 多版本 CUDA 用软链接或 conda 管理
torch.cuda.is_available()是 PyTorch GPU 环境验证的标准命令
加载练习题中...