communication_statistic(集合通信算子统计信息)
集合通信算子和计算及通信流水掩盖数据timeline信息在msprof_*.json文件的Communication层级展示,summary信息在communication_statistic_*.csv文件汇总,以及在msprof_*.json下展示“Overlap Analysis”计算及通信的流水掩盖分析数据。
集合通信算子数据只有在多卡、多机或集群等存在卡间通信的场景下才能被采集并解析出性能数据。
支持的型号
msprof_*.json文件的Communication层级数据说明
msprof_*.json文件Communication层数据如下图所示。


多卡、多机或集群场景时各Device之间存在通信,形成各个通信域,Communication层按照各个通信域进行排列,收集通信算子的耗时,该文件下可以直观找出耗时最长的通信算子。
字段名  | 
字段含义  | 
|---|---|
公共信息  | 
|
Group * Communication(通信域名称,根据实际上报的名称确定)  | 
通信域下的通信算子。一个卡(Rank)可以存在于不同的通信域中,一个Group标识当前卡在当前通信域的行为。  | 
Plane ID  | 
网络平面ID。对多个收发通信链路的并行调度执行,每个Plane就是一个并发通信维度。  | 
Title  | 
选择某个组件的接口名称。  | 
Start  | 
显示界面中时间轴上的时刻点,chrome trace自动对齐,单位ms。  | 
Wall Duration  | 
表示当前接口调用耗时,单位ms。  | 
Self Time  | 
表示当前指令本身执行耗时,单位ms。  | 
通信大算子信息  | 
|
connection_id  | 
CANN层API向NPU算子下发时二者关联的标识。  | 
model id  | 
模型ID。  | 
data_type  | 
数据类型。  | 
alg_type  | 
通信算子各阶段的算法类型,包含:MESH、RING、NB、HD、NHR、PIPELINE、PAIRWISE、STAR。  | 
count  | 
数据传输的数量。  | 
relay  | 
通信算子是否发生借轨。显示为yes(表示发生了借轨)或no(表示没有发生借轨)。支持型号:  | 
retry  | 
通信算子是否发生重执行。显示为yes(表示发生了重执行)或no(表示没有发生重执行)。支持型号:  | 
通信小算子信息  | 
|
notify id  | 
notify唯一ID。  | 
duration estimated(us)  | 
预估任务持续时间,单位us。  | 
stream id  | 
Stream任务的ID。  | 
task id  | 
Task任务的ID。  | 
task type  | 
Task类型。  | 
src rank  | 
源Rank。  | 
dst rank  | 
目的Rank。  | 
transport type  | 
传输类型,包含:LOCAL、SDMA、RDMA。  | 
size(Byte)  | 
数据量,单位Byte。  | 
data type  | 
数据类型。  | 
link type  | 
链路类型,包含:HCCS、PCIe、RoCE。  | 
bandwidth(GB/s)  | 
带宽大小,单位GB/s。  | 
计算及通信的流水掩盖分析
msprof_*.json下的“Overlap Analysis”为计算及通信的流水掩盖分析数据,由--task-time和--hccl开关控制。如图3所示。
计算和通信存在并行,那么可通过查看流水掩盖的重叠时间(计算和通信并行的时间)从而判断计算通信效率。
字段名  | 
字段含义  | 
|---|---|
Communication  | 
通信时间。单卡场景无通信,不展示该字段。  | 
Communication(Not Overlapped)  | 
无掩盖的通信时间。单卡场景无通信,不展示该字段。  | 
Computing  | 
计算时间。  | 
Free  | 
间隙时间。  | 
Start  | 
表示当前接口开始调用的时刻点,单位ms。  | 
Wall Duration  | 
表示当前接口调用耗时,单位ms。  | 
communication_statistic_*.csv文件说明
communication_statistic_*.csv文件内容格式示例如下:

communication_statistic_*.csv为集合通信算子统计信息,通过集合通信算子统计信息了解该类算子的耗时,以及各通信算子在集合通信内部的耗时占比,从而判断某个算子是否存在优化空间。
字段名  | 
字段含义  | 
|---|---|
Device_id  | 
设备ID。  | 
OP Type  | 
集合通信算子类型。  | 
Count  | 
集合通信算子执行次数。  | 
Total Time(us)  | 
集合通信算子执行总耗时,单位us。  | 
Min Time(us)  | 
集合通信算子执行最小耗时,单位us。  | 
Avg Time(us)  | 
集合通信算子执行平均耗时,单位us。  | 
Max Time(us)  | 
集合通信算子执行最大耗时,单位us。  | 
Ratio(%)  | 
集合通信算子执行耗时与整体集合通信耗时占比。  | 
