【知识点】分布式系统相关名词/概念/知识点

2022-11-14 16:59:05 浏览数 (1)

目录

通信原语[1]

BroadCast

Scatter

Gather

All-Gather

Reduce

Reduce-Scatter

All-Reduce

All-to-All

Ring-Base Collectives[2]

参考文献与帖子


通信原语[1]

BroadCast

        1对多,广播方式。主节点0将数据发送到其他节点,且数据内容相同

应用场景:

  1. 数据并行的参数初始化,确保每张卡上的初始参数是一致的;
  2. allReduce里的 broadcast reduce组合里的broadcast操作;
  3. 分布式训练parameter server 参数服务器结构里的 master节点 broadcast 数据到worker节点,再从worker节点reduce数据回master节点里的broadcast操作;

Scatter

        1对多,广播方式。主节点0将数据发送到其他节点,且数据内容不相同

应用场景有:

  1. ReduceScatter组合里的 Scatter操作;
  2. 模型并行里初始化时将模型scatter到不同的XPU上;

Gather

        多对1。把多个节点的数据汇聚到一个节点上。

应用场景有:

  1. ReduceScatter组合里的 Scatter操作;

All-Gather

        多对多。收集所有的数据所有的节点上。把多个节点的数据收集到一个主节点上(Gather),再把这个收集到的数据分发到其他节点上(broadcast)。

应用场景有:

  1.  All-Gather可应用于模型并行;
  2. 模型并行里前向计算里的参数全同步,需要用all-gather把模型并行里将切分到不同的XPU上的参数全同步到一张XPU上才能进行前向计算。

Reduce

        多对1。把多个节点的数据规约运算到一个主节点上。

        常用的规约操作符有:求累加和SUM、求累乘积PROD、求最大值MAX、求最小值MIN、逻辑与 LAND、按位与BAND、逻辑或LOR、按位或BOR、逻辑异或LXOR、按位异或BOXR、求最大值和最小大的位置MAXLOC、求最小值和最小值的位置MINLOC等,这些规约运算也需要加速卡支持对应的算子才能生效。

应用场景有:

  1. AllReduce里的 broadcast reduce组合里的reduce操作;
  2. ReduceScatter组合里的 reduce操作;
  3. 分布式训练parameter server 参数服务器结构里的 master节点 broadcast 数据到worker节点,再从worker节点reduce数据回master节点里的reduce操作;

Reduce-Scatter

        多对多。在集群内的所有节点上都按维度执行相同的Reduce规约运算,再将结果发散到集群内所有的节点上。

应用场景有:

  1. ReduceScatter即可应用于数据并行也可应用于模型并行;
  2. 数据并行allReduce里的 ReduceScatter Allgather组合里的ReduceScatter操作;
  3. 模型并行里在前向allgather后的反向计算里的ReduceScatter;

All-Reduce

        多对多。在所有节点上都执行相同的Reduce操作,将所有节点的数据规约运算得到的结果发送到所有的节点上。

应用场景有:

  1. AllReduce应用于数据并行;
  2. 数据并行各种通信拓扑结构比如Ring allReduce、Tree allReduce里的 allReduce操作;

All-to-All

        多对多。对All-Gather的扩展,但不同的节点向某一节点收集到的数据是不同的。

应用场景有:

  1. 应用于模型并行;
  2. 模型并行里的矩阵转置;
  3. 数据并行到模型并行的矩阵转置;

Ring-Base Collectives[2]

        将所有的通信节点通过首尾连接形成一个单向环,数据在环上依次传输。

下面把要传输的数据分成S份,每次只传N/S的数据量

在以GPU为通信节点的场景下,如何构建通信环:

  • 单机4卡通过同一个PCIe switch挂载在一棵CPU:
  • 单机8卡通过两个CPU下不同的PCIe switch挂载:

参考文献与帖子

[1] 常平的笔记 - 认识世界是为了改造世界

[2] 如何理解Nvidia英伟达的Multi-GPU多卡通信框架NCCL? - 知乎

0 人点赞