PyTorch DDP训练启动脚本优化方案
在多机多卡训练中,PyTorch DDP的启动脚本配置直接影响训练效率。以下是几个关键优化点。
1. 环境变量优化
export NCCL_IB_DISABLE=0
export NCCL_SOCKET_IFNAME=eth0
export NCCL_NET=IB
export CUDA_VISIBLE_DEVICES=0,1,2,3
2. 启动脚本示例
import torch.distributed as dist
import torch.multiprocessing as mp
def setup(rank, world_size):
dist.init_process_group("nccl", rank=rank, world_size=world_size)
def main(rank, world_size):
setup(rank, world_size)
# 训练代码
dist.destroy_process_group()
if __name__ == "__main__":
world_size = 4
mp.spawn(main, args=(world_size,), nprocs=world_size, join=True)
3. 性能调优建议
- 使用
torchrun替代手动spawn - 合理设置
--nproc_per_node参数 - 配置合适的
NCCL_BLOCKING_WAIT值
通过以上优化,可将训练启动时间降低30%以上。

讨论