解析并导出性能数据
以下产品不支持在设备上直接解析,需要将采集到的PROF_XXX目录拷贝到安装了Ascend-cann-toolkit开发套件包的环境下进行解析并导出:
Atlas 200I/500 A2 推理产品 的Ascend RC场景
前提条件
- 请确保完成使用前准备。
- 完成性能数据采集。(仅CANN 6.3.RC2和CANN 6.2.RC2及以后版本的原始性能数据才支持当前的解析和导出功能。)
操作步骤
执行导出命令。
命令示例如下:
msprof --export=on --output=<dir> [--type=<type>] [--iteration-id=<number>] [--model-id=<number>] [--summary-format=<csv/json>] [--clear=on]
参数 |
说明 |
可选/必选 |
---|---|---|
--export |
解析并导出性能数据。可选on或off,默认值为off。 若需导出个别模型(Model ID)/迭代(Iteration ID)的数据,可在msprof采集命令执行完成后重新执行msprof --export命令配置--model-id、--iteration-id参数。 对于未解析的PROF_XXX文件,自动解析后再导出。 示例:msprof --export=on --output=/home/HwHiAiUser |
必选 |
--output |
性能数据文件目录。须指定为PROF_XXX目录或PROF_XXX目录的父目录,例如:/home/HwHiAiUser/profiler_data/PROF_XXX。 路径中不能包含特殊字符:"\n", "\\n", "\f", "\\f", "\r", "\\r", "\b", "\\b", "\t", "\\t", "\v", "\\v", "\u007F", "\\u007F", "\"", "\\\"", "'", "\'", "\\", "\\\\", "%", "\\%", ">", "\\>", "<", "\\<", "|", "\\|", "&", "\\&", "$", "\\$", ";", "\\;", "`", "\\`"。 |
必选 |
--type |
设置性能数据解析结果文件格式,即可以选择msprof命令行执行采集后自动解析的结果文件格式,取值为:
默认为text。 |
可选 |
--iteration-id |
迭代ID。需配置为正整数。与--model-id必须同时配置。
|
可选 |
--model-id |
模型ID。需配置为正整数。与--iteration-id必须同时配置。
|
可选 |
--summary-format |
summary数据文件的导出格式,取值为:
仅--type=text时支持。 |
可选 |
--python-path |
指定解析使用的Python解释器路径,要求Python3.7.5及以上版本。 |
可选 |
--clear |
数据精简模式,开启后将在导出性能数据后删除PROF_XXX/device_{id}下的sqlite目录,以节省存储空间。可选on或off,默认值为off。 |
可选 |
注1: 注2:单算子场景和仅执行采集昇腾AI处理器系统数据场景,不支持--iteration-id和--model-id参数。 |
执行完上述命令后,会在--output目录下的PROF_XXX目录下生成mindstudio_profiler_output目录。
生成的性能数据目录结构如下所示。
执行--type=db命令时PROF_XXX目录下生成汇总所有性能数据的.db格式文件(msprof_时间戳.db),不生成mindstudio_profiler_output目录。
- 单采集进程
1 2 3 4 5 6 7 8 9 10 11 12 13
└── PROF_XXX ├── device_0 │ └── data ├── device_1 │ └── data ├── host │ └── data └── mindstudio_profiler_output ├── msprof_{timestamp}.json ├── step_trace_{timestamp}.json ├── xx_*.csv ... └── README.txt
- 多采集进程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
└── PROF_XXX1 ├── device_0 │ └── data ├── host │ └── data └── mindstudio_profiler_output ├── msprof_{timestamp}.json ├── step_trace_{timestamp}.json ├── xx_*.csv ... └── README.txt └── PROF_XXX2 ├── device_1 │ └── data ├── host │ └── data └── mindstudio_profiler_output ├── msprof_{timestamp}.json ├── step_trace_{timestamp}.json ├── xx_*.csv ... └── README.txt

- mindstudio_profiler_output目录下的json文件为timeline信息文件,主要收集算子、任务等运行耗时,以色块形式展示;csv文件为summary信息文件,主要以表格形式汇总运行耗时。性能数据详细介绍请参见性能数据文件参考。
- 多Device场景下,若启动单采集进程,则仅生成一个PROF_XXX目录,若启动多采集进程则生成多个PROF_XXX目录,其中Device目录在PROF_XXX目录下生成,每个PROF_XXX目录下生成多少个Device目录与用户实际操作有关,不影响性能数据分析。
- mindstudio_profiler_output目录中的文件是根据采集的实际性能数据进行生成,如果实际的性能数据没有相关的数据文件,就不会导出对应的timeline和summary数据。
- 对于被强制中断的msprof采集进程,工具会保存已采集的原始性能数据,也可以使用msprof --export解析并导出。