返回 深度学习 思维导图
中文·English
🧠 深度学习ID: ddp-ring-allreduce

DDP 与 Ring-AllReduce

DDP & Ring-AllReduce
🎯核心定义
DDP(分布式数据并行)中 N 张卡各持有本分片数据的梯度 gig_i,训练必须把各卡梯度求和(或平均)得到全局梯度——这正是 All-Reduce 操作。设单卡梯度总大小为 SS 字节。朴素实现(每卡把全量梯度 SS 发给其余 N−1 卡)每卡通信量 O(NS)O(NS),随卡数线性放大、不可扩展;Ring-AllReduce 通过环形拓扑把每卡通信量降到约 2S2S、与 N 无关,是带宽最优方案。把梯度切成 N 个 chunk(每块大小 S/NS/N),两阶段各 N−1 步: ① Scatter-Reduce: 第 k 步,ranki\text{rank}\,i 把本地 chunk (ik)modN(i-k) \bmod N 发给下一跳 rank(i+1)modN\text{rank}\,(i+1) \bmod N,同时从 rank(i1)modN\text{rank}\,(i-1) \bmod N 收到 chunk (ik1)modN(i-k-1) \bmod N 并原地累加;N−1 步后每个 rank 恰好完整拥有某一个 chunk 的全局和(不同 chunk 的和分布在不同 rank 上)。② All-Gather: 拥有全局和的 rank 沿环把该 chunk 转发,再 N−1 步后所有 rank 都持有全部 chunk 的全局和。通信量推导: 每步每卡发送 S/NS/N 字节,两阶段共 2(N1)2(N-1) 步,每卡总发送量 V=2(N1)SN=2N1NSV = 2(N-1)\cdot\frac{S}{N} = 2\frac{N-1}{N}S,当 NN \to \inftyV2SV \to 2S——因为每步传输量 S/NS/N 随 N 缩小、而步数 N1N-1 随 N 增长,两者乘积收敛到常数,所以每卡通信量(带宽)与 N 无关(全量梯度只被传 O(S)O(S) 而非 O(NS)O(NS))。但延迟项是 2(N1)2(N-1) 次串行 hop,仍随 N 线性增长: 小消息、慢网络下 Ring 不是最优,因此 NCCL 在跨节点/小数据时用 tree 算法、在节点内用 NVLink 分层 reduce。梯度重叠: 反向传播按层从后往前计算梯度,DDP 把参数按 bucket(默认约 25MB)分桶,每个 bucket 的梯度一旦就绪立即异步发起该桶的 All-Reduce,与后续层的反向计算并行(compute 与 communication 重叠),通信延迟几乎被完全隐藏;全局梯度裁剪在全部 All-Reduce 完成之后、优化器 step 之前进行。
💡使用场景
大模型多卡训练的基础设施常识(DL 与 AI_Infra 模块的衔接节点);面试高频追问“推导 Ring-AllReduce 的通信量”“为什么通信量与 N 无关”“梯度如何与反向传播重叠”。
解决的核心痛点
数据并行的梯度同步是最大的通信瓶颈——GPU 越多,同步开销越可能抵消计算加速。Ring-AllReduce 让每卡带宽占用恒定约 2S2S,通信时间不随卡数线性增长(带宽受限的理想情形),配合梯度分桶与异步重叠把通信延迟藏进计算里,单机多卡与跨节点训练可获得近线性扩展。
🎯5 个高频面试考点 (Exam Points)
1
推导 Ring-AllReduce 通信量: 每步每卡 S/NS/N、两阶段共 2(N1)2(N-1) 步 → V=2N1NSV = 2\frac{N-1}{N}S;证明当 NN \to \inftyV2SV \to 2S,即通信量与 N 无关。
2
描述 Scatter-Reduce 与 All-Gather 两阶段: chunk 如何绕环流转(下标 (ik)modN(i-k) \bmod N)、每阶段为何恰好 N−1 步、每个 rank 最终如何得到全部 chunk 的全局和。
3
朴素 All-Reduce(每卡向其余 N−1 卡发全量 SS)的每卡通信量是多少(O(NS)O(NS))?为什么说 Ring 是带宽最优(2S2S 是下界,全量梯度至少被读一遍)?
4
带宽不随 N 增长,延迟为什么仍随 N 增长(2(N−1) 次串行 hop)?什么场景下 NCCL 会改用 tree/分层算法(小消息、慢网络、跨节点)?
5
DDP 如何隐藏通信延迟: bucket 分桶(约 25MB)+ 反向中每个 bucket 就绪即异步 All-Reduce 与后续反向重叠;全局梯度裁剪的时机为什么是 All-Reduce 之后、step 之前?
更新于 2026-08-12
🎯
检验攻克程度:针对「DDP 与 Ring-AllReduce」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点混合精度 FP16/BF16/FP8下一个知识点图表示与邻接矩阵

🔗 更多 深度学习 知识点卡片

激活函数演进Adam/AdamWAutograd 动态图BatchNorm 批归一化