用户采集性能原始数据,并解析导出成可视化的性能数据文件后,需要了解文件目录结构及主要文件。
性能数据目录结构示例如下(仅展示性能数据):
├── device_{id} │ ├── summary │ │ ├── xx_*.csv ... │ └── timeline │ ├── xx_*.json ... │ └── msprof_*.json ├── host │ ├── summary │ │ ├── xx_*.csv ... │ └── timeline │ ├── xx_*.json ... │ └── msprof_*.json ├── mindstudio_profiler_output ├── msprof_{timestamp}.json ├── step_trace_{timestamp}.json ... ├── xx_*.csv ... └── README.txt └── timeline └── msprof_*.json
默认采集的性能数据文件如表1所示。
文件夹 |
文件名 |
说明 |
---|---|---|
timeline |
msprof*.json |
timeline数据总表。 |
step_trace_*.json |
迭代轨迹数据,每轮迭代的耗时。单算子场景(如PyTorch场景)下无此性能数据文件。 |
|
task_time_*.json |
Task Scheduler任务调度时序。 |
|
summary |
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 |
调优建议。 |
使用Perfetto UI打开:在Chrome浏览器中输入“https://ui.perfetto.dev/”地址,将.json文件拖到空白处打开,通过键盘上的快捷键(w:放大,s:缩小,a:左移,d:右移)进行查看。
使用tracing打开:在Chrome浏览器中输入“chrome://tracing”地址,将.json文件拖到空白处打开,通过键盘上的快捷键(w:放大,s:缩小,a:左移,d:右移)进行查看。
集群场景下,基于通信域的通信分析和迭代耗时分析,可以通过cluster_analysis工具的cluster_analysis.py脚本将数据进行汇总后分析。
集群场景下,多卡间的算子情况,只能通过查看每张卡各自的性能数据来了解,不能直观的对比各卡之间算子的性能差异。为了直观查看格卡之间算子的性能差异,请通过cluster_kernels_analysis工具的cluster_op_summary_analysis.py脚本,快速统计并展示各卡之间TopN算子的性能数据。