树形归约Tree collective
沿树逐层合并结果,再向需要的节点分发。
- 核心约束
- 内部节点合并其覆盖子树的贡献。
- 适用问题
- 降低集合通信的关键路径层数。
- 边界与取舍
- 树的布局、带宽利用和负载均衡需要共同考虑。
时间与空间#
p 为参与者数,m 为向量长度;假设平衡树与可结合的归约操作。
- 时间复杂度
- 关键路径 个层级,每层处理相应消息
- 辅助空间
- 常见每节点数据缓冲 ,分块流水线状态另计
总归约工作仍需合并所有输入,不能把层数误读为总算术量。朴素 reduce 后广播与分块双树的带宽行为不同;浮点加法的顺序改变也可能改变最后几位结果。
工程中的应用#
1 个案例 · 附源码用不同通信拓扑组织梯度归约,在带宽利用与启动延迟之间取舍。
附源码片段 · 通信与流量
基础原理参考资料
NVIDIA · NCCL double binary trees对数层级、双树分担数据和分块通信设计。