【NCCL】DBT算法(double binary tree,双二叉树)

目录

前言 

ring 不足,需要 tree

朴素二叉tree只利用了一半带宽,需要 双二叉 tree

双二叉树的构造

ringvs 双二叉树 测试

ring和tree的选择

nccl tree

tree搜索

基本概念解释

最大化局部性构建二叉树的方式

这种构建方式的好处

示例说明


前言 

参考:万卡集群通信优化算法双二叉树:https://www.bilibili.com/video/BV1zSpnezEB8

3.1 NCCL源码二叉树构建算法:https://www.bilibili.com/video/BV1DErsYwEhc/

Massively Scale Your Deep Learning Training with NCCL 2.4 | NVIDIA Technical Blog

"double binary tree" 在并行计算/NCCL语境中特指一种用于高效集合通信的树形拓扑结构,由两个并行的二叉树组成。

从 ring 算法到 tree 算法,把时间复杂度从 n 提升到了 logn

ring-->tree-->db tree

ring 不足,需要 tree

ring算法 适合小规模集群,能够充分利用上行和下行的带宽。但是环越大,延迟线性增加,不适合大规模集群。

为了解决这个问题,线引入二维环算法,但仍然无法完全解决该问题,最后由引入了Tree算法

朴素二叉tree只利用了一半带宽,需要 双二叉 tree

朴素二叉树(native binary tree)

缺点:叶子节点只接收不发送数据,只利用了带宽的一半,浪费了大量的(叶子节点的)带宽。

假设root节点要broadcast一个消息M给所有节点,root会将M发

posted on 2025-05-09 22:15  bdy  阅读(33)  评论(0)    收藏  举报  来源

导航