前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【知识点】分布式系统相关名词/概念/知识点

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

作者头像
小锋学长生活大爆炸
发布2022-11-14 16:59:05
6700
发布2022-11-14 16:59:05
举报

目录

通信原语[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? - 知乎

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通信原语[1]
    • BroadCast
      • Scatter
        • Gather
          • All-Gather
            • Reduce
              • Reduce-Scatter
                • All-Reduce
                  • All-to-All
                    • Ring-Base Collectives[2]
                    • 参考文献与帖子
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档