msprof(timeline数据总表)
在host、device和timeline目录下均保存timeline数据总表,其中timeline目录下的数据总表为host和device目录下两个数据总表之和。
timeline数据总表文件为msprof*.json。
msprof*.json在“chrome://tracing”中展示如下。
图1 timeline汇总展示

如图1所示,timeline汇总数据主要展示如下区域:
- 区域1:应用层数据,包含上层应用算子的耗时信息,需要使用msproftx采集或PyTorch场景采集。
- 区域2:CANN层数据,主要包含AscendCL、Runtime等组件以及Node(算子)的耗时数据。
- 区域3:底层NPU数据,主要包含Ascend Hardware下各个Stream任务流的耗时数据和迭代轨迹数据、HCCL和Overlap Analysis通信数据以及其他昇腾AI处理器系统数据。
- 区域4:展示timeline中各算子、接口的详细信息(单击各个timeline时展示)。

- timeline数据总表的数据在性能数据文件参考中的其他性能数据章节均有对应数据的详细介绍。
- 上图中各区域的数据与采集场景有关,例如非Ascend EP场景不生成host相关数据;区域1仅在msproftx或PyTorch场景采集时生成;HCCL和Overlap Analysis通信数据仅在多卡、多节点或集群等存在通信的场景可采集到数据等。请以采集数据实际情况为准。
- msprof*.json展示的数据是迭代内的数据,迭代外的数据不展示。
计算及通信的流水掩盖分析
msprof*.json下的“Overlap Analysis”为计算及通信的流水掩盖分析数据,由task-time和--hccl开关控制。如图2所示。
计算和通信存在并行,那么可通过查看流水掩盖的重叠时间(计算和通信并行的时间)从而判断计算通信效率。
字段名 |
字段含义 |
---|---|
Communication |
通信时间。单卡场景无通信,不展示该字段。 |
Communication(Not Overlaopped) |
无掩盖的通信时间。单卡场景无通信,不展示该字段。 |
Computing |
计算时间。 |
Free |
间隙时间。 |
Start |
表示当前接口开始调用的时刻点,单位ms。 |
Wall Duration |
表示当前接口调用耗时,单位ms。 |
查看算子下发方向
在tracing中查看.json文件时,开启“Flow events”下的选项后,应用层算子到NPU算子之间通过连线方式展示下发到执行的对应关系。如图3所示。
主要包括的对应关系有:
- 应用层算子 > Ascend Hardware的NPU算子的下发执行关系。
- 应用层Enqueue > Dequeue的入队列到出队列对应关系,仅PyTorch场景。
- CANN层Node(算子) > AscendHardware的NPU算子的下发执行关系(Host到Device)。
- CANN层Node(算子) > HCCL通信算子的下发执行关系(Host到Device)。

- 由于软件测量的昇腾AI处理器频率与真实频率有误差,以及host与device的时间同步误差,可能会出现下层算子因错位而无法连线的问题。
- 各层的对应关系是否呈现与对应采集场景是否采集该数据有关,请以实际情况为准。
通过单击连线两端的算子或接口,即可查看算子下发的方向。如图4所示。
其中Event(s)列查看该算子或接口的出入方向,Link列查看映射关系两端的信息。
父主题: 性能数据文件参考