昇腾社区首页
中文
注册
开发者
下载

采集&解析性能数据

本节介绍推理场景下使用msprof命令行方式采集和解析性能数据、并通过生成的结果文件分析性能瓶颈的基本方法。在使用msprof命令行前,您需要先参见性能调优工具用户指南准备好环境、了解使用约束以及基本的参数使用方法。

采集、解析并导出性能数据

  1. 登录装有Toolkit软件包的运行环境,执行如下命令,可一键式采集、解析并导出性能数据:
    msprof --output=/home/HwHiAiUser/profiling_output /home/HwHiAiUser/HIAI_PROJECTS/MyAppname/out/main
    表1 参数说明

    参数

    描述

    可选/必选

    --output

    收集到的Profiling数据的存放路径,默认为AI任务文件所在目录。路径中不能包含特殊字符:"\n", "\f", "\r", "\b", "\t", "\v", "\u007F"。

    可选

    命令执行完成后,在output指定的目录下生成PROF_XXX目录,存放自动解析后的性能数据(以下仅展示性能数据)。

    ├── device_{id}   //保存原始数据,用户无需关注
    │    └── data
    └── mindstudio_profiler_output
          ├── msprof_{timestamp}.json
          ├── step_trace_{timestamp}.json
          ├── xx_*.csv
           ...
          └── README.txt
  2. 进入mindstudio_profiler_output目录,查看性能数据文件。

    默认情况下采集到的文件如表2所示。

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

    文件名

    说明

    msprof_*.json

    timeline数据总表。

    step_trace_*.json

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

    op_summary_*.csv

    AI Core和AI CPU算子数据。

    op_statistic_*.csv

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

    step_trace_*.csv

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

    task_time_*.csv

    Task Scheduler任务调度信息。

    fusion_op_*.csv

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

    api_statistic_*.csv

    用于统计CANN层的API执行耗时信息。

    prof_rule_0_*.json

    调优建议。

    注:“*”表示{timestamp}时间戳。

    • json文件需要在Chrome浏览器中输入chrome://tracing,将文件拖到空白处进行打开,通过键盘上的快捷键(w:放大,s:缩小,a:左移,d:右移)。通过该文件可查看当前AI任务运行的时序信息,比如运行过程中接口调用时间线,如图1所示。
      图1 查看json文件
    • csv文件可直接打开查看。通过该文件可以看到AI任务运行时的软硬件数据,比如各算子在AI处理器软硬件上的运行耗时,通过字段排序等可以快速找出需要的信息,如图2所示。
      图2 查看csv文件