大模型集合通信学习笔记

原学习视频链接
ZOMI老师讲的超好!!!
笔记略长,把各方面的内容都涉及了,对于建立概念来说比较好用。

大模型业务全流程

在这里插入图片描述

大模型集合通信

在这里插入图片描述

XCCL基本架构

1.计算与通信的解耦

在这里插入图片描述
在这里插入图片描述

分布式加速库

DeepSpeed Megatron-LM MindSpeed ColossalAI

HPC到AI的基本框架

在这里插入图片描述

XCCL在AI系统中的位置

在这里插入图片描述

通信原语(通信算子)

在这里插入图片描述

point to point (P2P)

broadcast

在这里插入图片描述

scatter(较少用)

在这里插入图片描述

gather(少用)
在这里插入图片描述

reduce

在这里插入图片描述

all to all

all reduce

在这里插入图片描述

all gather

在这里插入图片描述

reduce scatter

在这里插入图片描述

all to all(MOE兴起后用的很多)

在这里插入图片描述

AI对集合通讯算法的需求

在这里插入图片描述

1.大带宽(大流量、高频次通信)

2.强同步(单卡故障拖慢全网)

大模型流量相对明确

在这里插入图片描述

集合通信的难点:

1.需要在固定的网络互联结构约束下进行高效通信

2.集合通信算法与物理网络互联结构强相关,需要充分发挥网络的通信效率

3.在效率、成本、带宽与时延间进行取舍

!!!!!topo之上的通信算法!!!!!

ALL Reduce通信算法

ring all reduce 通常适用于star、tree等小规模拓扑,因为其通信延迟会随着节点数线性增加

在这里插入图片描述

halving-doubling算法

每次选择节点距离倍增的节点相互通信,每次通信量倍减(或倍增),访问步长按照2的N次增加,昇腾HCCL和阿里ACCL均采用该算法

适用Fat-Tree等拓扑,通信步骤少,只有2lbN次(N为通信Rank数)

但采用固定的并行算法,每一个步骤相互通信的Rank均不同,链路来回切换会带来额外的开销。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

拓扑感知all reduce算法

在这里插入图片描述

nvidia

在这里插入图片描述

!!!!组网拓扑不同-》并行配置不同-》通信算法不同!!!!

通信域与Rank

通信域包括上下文(context)进程组(group)【表示通信域中所有进程的集合,一个通信域对应一个进程组】虚拟处理器拓扑(topology)

进程客观上是唯一的,有自己的Process ID,同一个进程可以对应多个进程组,在每个组有自己的Rank ID,也可以属于多个通信域

在这里插入图片描述

在这里插入图片描述

MP:模型并行组(Model Parallism)。

假设一个完整的模型需要布在8块GPU上,则如图所示,我们共布了2个model replica(2个MP)。MP组为:[[g0, g1, g4, g5, g8, g9, g12, g13], [g2, g3, g6, g7, g10, g11, g14, g15]]
TP:张量并行组(Tensor Parallism)。

对于一个模型的每一层,我们将其参数纵向切开,分别置于不同的GPU上,则图中一共有8个TP组。TP组为:[[g0, g1], [g4, g5],[g8, g9], [g12, g13], [g2, g3], [g6, g7], [g10, g11], [g14, g15]]
PP:流水线并行组(Pipeline Parallism)。

对于一个模型,我们将其每一层都放置于不同的GPU上,则图中一共有4个PP组。PP组为:[[g0, g4, g8, g12], [g1, g5, g9, g13], [g2, g6, g10, g14], [g3, g7, g11, g15]]
DP:数据并行组(Data Parallism)。

经过上述切割,对维护有相同模型部分的GPU,我们就可以做数据并行,则图中共有8个DP组。DP组为[[g0, g2], [g1, g3], [g4, g6], [g5, g7], [g8, g10], [g9, g11], [g12, g14], [g13, g15]]

上述组就是进程组(通信域)

PyTorch分布式训练依赖

在这里插入图片描述

但是不同后端(backend)在提供的通信与一上具有一定的差异性

在这里插入图片描述

其中NCCL\GLOO等是后端提供的通信库
注意:windows没有NCCL支持
在这里插入图片描述

集群间的互联

节点间NPU互联:

  1. Pcle
  2. 共享内存
  3. 私有协议
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐