昇腾社区首页
中文
注册

集合通信耗时

集合通信耗时统计可通过MindStudio集群分析工具对profiling数据进行分析。

以下例所示,展示集合通信耗时分析流程,网络配置及部署参数如表1所示:

表1 网络配置及部署参数表

Vocab Size(v)

Seq Length(s)

Attn Heads(ah)

Hidden Size(h)

Layers(n)

DP(d)

TP(t)

PP(p)

卡数

Micro Batch Size(b)

Global Batch Size(B)

51200

1024

96

12288

64

1

8

8

64

4

96

在profiling文件中查看集合通信算子次数

前向流程:

在timeline文件中框选模型前向流程的所有算子,并关注HcclAllgatherBase、HcclAllreduce、HcclBroadcast、HcclRecv、HcclReduceScatterBase与HcclSend等通信算子的出现次数。

图1 前向流程
图2 前向流程的集合通信算子

反向流程:

在timeline文件中框选模型反向流程的所有算子,并关注HcclAllreduce通信算子的出现次数。

图3 反向流程
图4 反向流程的集合通信算子

依据profiling文件中统计到的通信算子,结合网络配置及部署参数,可做如下集合通信次数分析:

  • 反向All-Reduce:(2+2)*8*24 = 768
  • 前向All-Reduce:(1+1)*8*24+24(每个micro batch一个)+4(zero引入)= 412

    All-Reduce额外的24个是每一次micro batch的前向第一个引入一个额外的All-Reduce,不在CheckpointFunction下

  • 每做完一个pipeline并行的recv,紧接着会有1个对FeatureMap的All-Gather
  • All-Reduce:4
  • Reduce-scatter:1
  • broadcast共48次:(1+1)*24(每个micro batch两个)

    第一次broadcast数据的size,第二次broadcast数据的内存,是TP中对FeatureMap的broadcast