在host、device和timeline目录下均保存timeline数据总表,其中timeline目录下的数据总表为host和device目录下两个数据总表之和。
timeline数据总表文件为msprof*.json。
msprof*.json在Chrome浏览器中展示如下。
图1 timeline汇总展示
如图1所示,timeline汇总数据主要展示如下区域:
- 区域1:CANN层数据,主要包含AscendCL和Runtime等组件的耗时数据。
- 区域2:底层NPU数据,主要包含Task Scheduler组件耗时数据和迭代轨迹数据以及其他昇腾AI处理器系统数据。
- 区域3:展示timeline中各算子、接口的详细信息。单击各个timeline时展示。
- 单算子场景下(当App调用《应用软件开发指南(C&C++)》中“AscendCL API参考>算子加载与执行”接口场景下执行Profiling采集的数据),通过箭头连线展示AscendCL API和Task Scheduler(底层NPU算子)之间的关联关系,详细分析方法请参见查看算子下发方向。
- msprof*.json展示的数据是迭代内的数据,迭代外的数据不展示。
- 在device_{id}或timeline文件夹下存在msprof*.json,包含Device侧的timeline数据汇总;在host/timeline文件夹下存在msprof*.json,包含host侧的timeline数据汇总;在timeline文件夹下存在msprof*.json,包含整体timeline数据汇总。
- 当用户在“chrome://tracing”中查看msprof*.json文件时,单击“Flow events”并勾选“async_acl_npu”或“async_npu”后,正常情况下会查看到上层应用算子与底层NPU算子之间通过连线方式展示映射关系。但由于软件测量的昇腾AI处理器频率与真实频率有误差,以及host与device的时间同步误差,会造成算子下发非常快时连线断连的问题。
计算及通信的流水掩盖分析
集群或单机多卡场景下,开启了HCCL性能数据采集开关时,除了生成HCCL性能数据(hccl_*.json)外,还会在msprof*.json下生成“Overlap Analysis”计算及通信的流水掩盖分析数据。如图2所示。
图2 计算及通信的流水掩盖呈现效果图
字段名 |
字段含义 |
communication_not_overlapped |
无掩盖的通信时间。 |
communication_time |
通信时间。 |
compute_time |
计算时间。 |
free_time |
间隙时间。 |
Start |
显示界面中时间轴上的时刻点,chrome trace自动对齐。单位为ms。 |
Wall Duration |
表示当前接口调用耗时。单位为ms。 |