在 Linux 上使用 PyTorch 报 CUDA 相关错误,通常不是“某一个固定原因”,而是下面几类问题之一。我按最常见 → 较少见给你梳理,并给出排查命令。
现象
AssertionError: Torch not compiled with CUDA enabled
或
CUDA unavailable
检查
python -c "import torch; print(torch.cuda.is_available())"
输出 False 就说明没 CUDA。
原因
pip install torch 默认装 CPU解决
# CUDA 11.8 示例
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
检查驱动
nvidia-smi
如果报错:
NVIDIA-SMI has failed
说明:
解决
ubuntu-drivers autoinstall
查看 PyTorch 期望的 CUDA
python -c "import torch; print(torch.version.cuda)"
查看系统 CUDA
nvcc --version
⚠️ 注意:
报错
CUDA out of memory
解决
torch.cuda.empty_cache()
export CUDA_VISIBLE_DEVICES=0
Expected all tensors to be on the same device
规则
model = model.cuda()
x = x.cuda()
which python
which torch
建议
常见于:
现象
nvidia-smi 找不到驱动
解决
请把下面信息贴出来:
nvidia-smi
nvcc --version
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
以及完整报错信息(前 10–20 行)
我可以一步步帮你修到能跑 ✅