在 CentOS 上跑 PyTorch 慢,通常不是 PyTorch 本身的问题,而是环境、硬件或配置没用好。下面按「最常见 → 高级优化」给你一套排查和优化清单。
先排除业务代码问题:
# 测试是否能用 GPU
python -c "import torch; print(torch.cuda.is_available())"
False → 在用 CPU 跑,当然慢True → 继续看下面CentOS 常见于:
✅ 解决:
nvidia-smi
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
CentOS 7 的 gcc 是 4.8,PyTorch 跑得慢甚至崩。
✅ 解决:
# 使用 devtoolset
yum install -y centos-release-scl
yum install -y devtoolset-9
scl enable devtoolset-9 bash
PyTorch 默认用 MKL,但有时没生效。
✅ 检查:
import torch
print(torch.__config__.parallel_info())
✅ 建议:
pip install intel-openmp
DataLoader 太慢:
✅ 优化:
DataLoader(..., num_workers=8, pin_memory=True)
CentOS 上:
num_workers 建议 = CPU 核数常见组合:
| CentOS | CUDA | PyTorch |
|---|---|---|
| 7 | 11.8 | cu118 |
| 8 | 12.1 | cu121 |
✅ 用官方对应版本,别混用。
from torch.cuda.amp import autocast, GradScaler
torch.set_num_threads(8)
torch.compile(PyTorch 2.x)model = torch.compile(model)
⚠️ CentOS 7 已 EOL
⚠️ Docker 比裸机更稳
⚠️ 推荐用 Miniconda,别用系统 Python
nvidia-smi 正常torch.cuda.is_available() == Truenum_workers > 0如果你愿意,可以告诉我:
我可以直接给你一套针对你机器的配置方案。