在 CentOS 上,PyTorch 完全可以并行,而且并行的方式和你在其他 Linux 发行版(Ubuntu 等)上用 PyTorch 是一样的。是否“能并行”主要取决于 硬件、驱动、PyTorch 版本和代码写法,而不是 CentOS 本身。
下面按常见并行方式说明:
model = torch.nn.DataParallel(model)
model.cuda()
torchrun --nproc_per_node=4 train.py
import torch.distributed as dist
dist.init_process_group("nccl")
model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[local_rank])
PyTorch 默认就会用多线程:
torch.get_num_threads()
torch.set_num_threads(8)
multiprocessingtorch.multiprocessing⚠ 注意:
glibc 较老,建议用 conda 或 官方 wheelfork 在 CUDA 下出问题runfile 安装驱动conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
nvidia/cuda + PyTorch)firewalldfirewall-cmd --add-port=29500/tcp --permanent
firewall-cmd --reload
| 场景 | 建议 |
|---|---|
| 单机多卡 | DDP + torchrun |
| 多机 | DDP + 高速网络 |
| CentOS 7 | conda 或 Docker |
| 新手 | 先 DataParallel,再 DDP |
如果你愿意,可以告诉我:
我可以直接给你一套 可运行的 CentOS PyTorch 并行配置示例。