在 Ubuntu 上跑 PyTorch 慢,通常不是系统本身的问题,而是环境或配置没用好。常见原因和对应解决办法如下:
PyTorch 默认可能跑在 CPU 上。
检查:
python -c "import torch; print(torch.cuda.is_available())"
False → 没用上 GPU解决:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
nvidia-smi
很多人直接 pip install torch,装的是 CPU 版。
检查:
python -c "import torch; print(torch.__version__)"
带 +cpu 就是 CPU 版。
即使 GPU 很强,数据读不过来也会慢。
问题表现:
nvidia-smi 看显存有,但算力空转解决:
DataLoader(
dataset,
batch_size=...,
num_workers=4~8,
pin_memory=True
)
建议:
batch_sizetorch.compile()(PyTorch 2.x)默认是 float32,很慢。
可尝试:
model.half() # FP16
# 或
with torch.cuda.amp.autocast():
...
笔记本或服务器可能限速。
检查:
nvidia-smi -q -d POWER
开启高性能:
sudo powertop --auto-tune
或 BIOS 中关闭节能模式。
建议:
解决:
lmdb / tfrecord / webdatasetnvidia-smi
python -c "import torch; print(torch.cuda.is_available())"
watch -n 1 nvidia-smi
如果你愿意,可以告诉我:
nvidia-smi 截图或利用率我可以直接帮你定位是哪一步拖慢了。