在 Linux 上跑 PyTorch 卡顿/慢,原因很多,先定位是“真的卡”还是“用错了资源”。下面按最常见原因 → 排查方法 → 解决办法给你一个实用清单。
nvidia-smi
✅ 解决:
device = "cuda" if torch.cuda.is_available() else "cpu"
model = model.to(device)
x = x.to(device)
症状:
nvidia-smi 经常掉到 0%✅ 解决:
DataLoader(
dataset,
batch_size=32,
num_workers=4, # 一般 = CPU核心数//2
pin_memory=True
)
如果是 小文件(大量图片):
WebDataset / LMDB / TFRecordnvidia-smi
看 Memory-Usage
✅ 解决:
batch_sizetorch.cuda.empty_cache()from torch.cuda.amp import autocast, GradScaler
import torch
print(torch.__version__)
print(torch.cuda.is_available())
如果是 False:
✅ 重装 GPU 版:
pip uninstall torch torchvision
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
top
htop
torch.set_num_threads(4)
cudnn:torch.backends.cudnn.benchmark = True
✅ 你是否:
cuda.is_available() == Truemodel.to('cuda')DataLoader num_workers > 0nvidia-smi 有 GPU 占用你可以直接贴:
nvidia-smi 截图我可以直接帮你改代码。