树形归约Tree collective

沿树逐层合并结果,再向需要的节点分发。

核心约束
内部节点合并其覆盖子树的贡献。
适用问题
降低集合通信的关键路径层数。
边界与取舍
树的布局、带宽利用和负载均衡需要共同考虑。

时间与空间#

p 为参与者数,m 为向量长度;假设平衡树与可结合的归约操作。

时间复杂度
关键路径 O(log⁡p)O(\log p) 个层级,每层处理相应消息
辅助空间
常见每节点数据缓冲 O(m)O(m),分块流水线状态另计

总归约工作仍需合并所有输入,不能把层数误读为总算术量。朴素 reduce 后广播与分块双树的带宽行为不同;浮点加法的顺序改变也可能改变最后几位结果。

工程中的应用#

1 个案例 · 附源码
基础原理参考资料

NVIDIA · NCCL double binary trees对数层级、双树分担数据和分块通信设计。

6 个概念