性能数据文件总体说明

用户采集性能原始数据,并解析导出成可视化的性能数据文件后,需要了解文件目录结构及主要文件。

目录结构及文件说明

性能数据目录结构示例如下(仅展示性能数据):

├── mindstudio_profiler_output
│   ├── msprof_*.json
│   ├── step_trace_*.json
│   ├── xx_*.csv
...
│   └── README.txt
├── device_{id}
│       └── data
├── host
│       └── data
├── timeline
│   ├── msprof_*.json
  • device_{id}目录主要保存各个Device运行昇腾AI应用的性能原始数据和昇腾AI处理器系统原始数据。
  • host目录主要保存上层应用接口(msproftx)的昇腾AI应用运行性能原始数据和Host系统原始数据。
  • mindstudio_profiler_log目录主要保存Device和Host的运行日志。
  • mindstudio_profiler_output目录保存Host和各个Device的性能数据汇总(性能数据分析推荐查看该目录下文件)。

该目录下的各个文件数据量较大,可能出现数据文件分片,若不需要切分文件,可参见性能数据文件分片修改分片容量上限。

  • timeline目录下保存timeline数据总表,为host和device目录下的timeline数据总表之和。需要device和host数据均存在情况下生成。

默认采集的性能数据文件如表1所示。

表1 msprof默认配置采集的性能数据文件

文件名

说明

msprof_*.json

timeline数据总表。

step_trace_*.json

迭代轨迹数据,每轮迭代的耗时。单算子场景(如PyTorch场景)下无此性能数据文件。

op_summary_*.csv

AI Core和AI CPU算子数据。

op_statistic _*.csv

AI Core和AI CPU算子调用次数及耗时统计。

step_trace_*.csv

迭代轨迹数据。单算子场景(如PyTorch场景)下无此性能数据文件。

task_time_*.csv

Task Scheduler任务调度信息。

fusion_op_*.csv

模型中算子融合前后信息。单算子场景(如PyTorch场景)下无此性能数据文件。

prof_rule_0.json

调优建议。

注:表中的json文件为timeline信息文件,主要收集算子、任务等运行耗时,以色块形式展示;csv文件为summary信息文件,主要以表格形式汇总运行耗时。

文件命名格式说明

如何查看timeline文件

使用Perfetto UI打开:在Chrome浏览器中输入“https://ui.perfetto.dev/”地址,将.json文件拖到空白处打开,通过键盘上的快捷键(w:放大,s:缩小,a:左移,d:右移)进行查看。

使用tracing打开:在Chrome浏览器中输入“chrome://tracing”地址,将.json文件拖到空白处打开,通过键盘上的快捷键(w:放大,s:缩小,a:左移,d:右移)进行查看。

超大文件推荐使用Perfetto UI打开。

summary文件说明

集群分析工具

集群场景下,基于通信域的通信分析和迭代耗时分析,可以通过cluster_analysis工具的cluster_analysis.py脚本将数据进行汇总后分析。

集群场景多卡间算子性能统计

集群场景下,多卡间的算子情况,只能通过查看每张卡各自的性能数据来了解,不能直观的对比各卡之间算子的性能差异。为了直观查看格卡之间算子的性能差异,请通过cluster_kernels_analysis工具的cluster_op_summary_analysis.py脚本,快速统计并展示各卡之间TopN算子的性能数据。