【NCCL】DBT算法(double binary 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发
浙公网安备 33010602011771号