hccl_statistic(集合通信算子统计信息)
集合通信算子和计算及通信流水掩盖数据timeline信息在msprof_*.json文件的HCCL层级展示,summary信息在hccl_statistic_*.csv文件汇总,以及在msprof*.json下展示“Overlap Analysis”计算及通信的流水掩盖分析数据。
集合通信算子数据只有在多卡、多机或集群等存在卡间通信的场景下才能被采集并解析出性能数据。
支持的型号
msprof_*.json文件的HCCL层级数据说明
msprof_*.json文件HCCL层数据如下图所示。
    
    多卡、多机或集群场景时各Device之间存在通信,形成各个通信域,HCCL层按照各个通信域进行排列,收集通信算子的耗时,该文件下可以直观找出耗时最长的通信算子。
| 
          字段名  | 
        
          字段含义  | 
       
|---|---|
| 
          公共信息  | 
       |
| 
          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  | 
        
          数据传输的数量。  | 
       
| 
          通信小算子信息  | 
       |
| 
          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。  | 
       
hccl_statistic_*.csv文件说明
hccl_statistic_*.csv文件内容格式示例如下:
    hccl_statistic_*.csv为集合通信算子统计信息,通过集合通信算子统计信息了解该类算子的耗时,以及各HCCL算子在集合通信内部的耗时占比,从而判断某个算子是否存在优化空间。
| 
          字段名  | 
        
          字段含义  | 
       
|---|---|
| 
          Device_id  | 
        
          设备ID。  | 
       
| 
          OP Type  | 
        
          集合通信算子类型。  | 
       
| 
          Count  | 
        
          集合通信算子执行次数。  | 
       
| 
          Total Time(us)  | 
        
          集合通信算子执行总耗时,单位us。  | 
       
| 
          Min Time(us)  | 
        
          集合通信算子执行最小耗时,单位us。  | 
       
| 
          Avg Time(us)  | 
        
          集合通信算子执行平均耗时,单位us。  | 
       
| 
          Max Time(us)  | 
        
          集合通信算子执行最大耗时,单位us。  | 
       
| 
          Ratio(%)  | 
        
          集合通信算子执行耗时与整体集合通信耗时占比。  | 
       
