温馨提示×

linux pytorch为何报cuda错

小樊
61
2026-10-19 02:38:25
栏目: 智能运维

在 Linux 上使用 PyTorch 报 CUDA 相关错误,通常不是“某一个固定原因”,而是下面几类问题之一。我按最常见 → 较少见给你梳理,并给出排查命令。


一、最常见原因(90% 情况)

1️⃣ PyTorch 装的是 CPU 版本

现象

AssertionError: Torch not compiled with CUDA enabled

或

CUDA unavailable

检查

python -c "import torch; print(torch.cuda.is_available())"

输出 False 就说明没 CUDA。

原因

  • 用 pip install torch 默认装 CPU
  • conda 环境混用

解决

# CUDA 11.8 示例
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

2️⃣ NVIDIA 驱动没装 / 版本太低

检查驱动

nvidia-smi

如果报错:

NVIDIA-SMI has failed

说明:

  • 驱动未安装
  • 或内核升级后驱动失效

解决

  • 安装官方驱动
  • 或用:
ubuntu-drivers autoinstall

3️⃣ CUDA 版本和 PyTorch 不匹配

查看 PyTorch 期望的 CUDA

python -c "import torch; print(torch.version.cuda)"

查看系统 CUDA

nvcc --version

⚠️ 注意:

  • PyTorch 不需要系统装 CUDA
  • 但 驱动版本必须够新

4️⃣ 多卡 / 显存不足(OOM)

报错

CUDA out of memory

解决

  • 减小 batch size
  • 用:
torch.cuda.empty_cache()
  • 指定 GPU:
export CUDA_VISIBLE_DEVICES=0

二、较常见但容易被忽略

5️⃣ 模型在 CPU,数据在 GPU(或反过来)

Expected all tensors to be on the same device

规则

model = model.cuda()
x = x.cuda()

6️⃣ conda / pip 环境混乱

which python
which torch

建议

  • 一个项目一个环境
  • 避免系统 Python 直接装 torch

7️⃣ 内核或 Secure Boot 问题(Linux 特有)

常见于:

  • Ubuntu 升级后
  • 双系统

现象

nvidia-smi 找不到驱动

解决

  • 禁用 Secure Boot
  • 重装驱动

三、你可以直接告诉我这些,我能精确定位

请把下面信息贴出来:

nvidia-smi
nvcc --version
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"

以及完整报错信息(前 10–20 行)

我可以一步步帮你修到能跑 ✅

0 踩