跳到主要内容
分布式训练

第2章:数据并行

从 DP 到 DDP 再到 FSDP,掌握数据并行的演进路线、通信机制和工程实践

数据并行 DDP FSDP AllReduce 梯度同步

本章简介

数据并行是最基础也是最常用的并行策略。本章从三种方案的演进中,理解”更聪明地切分训练状态”的思路。

**DataParallel(DP)**介绍单进程多卡的实现原理,分析 GIL 瓶颈和负载不均问题及其适用场景。

**DistributedDataParallel(DDP)**是生产环境的标配:每 GPU 一个进程、init_process_group 初始化、DistributedSampler 保证数据不重叠、AllReduce 梯度同步、Bucketing 实现通信与计算 overlap,以及通信量分析。

**Fully Sharded Data Parallel(FSDP)**本质上是 PyTorch 原生的 ZeRO-3:Shard → AllGather → Forward/Backward → ReduceScatter 的完整流程,包括 sharding_strategy 和 auto_wrap_policy 配置,以及与 DDP 的通信量对比。

动手实验:将单卡训练脚本改造为 DDP 版本(30 分钟),在 2-4 卡上对比 DDP vs FSDP 的显存与速度差异。