解析并导出性能数据
以下产品不支持在设备上直接解析,需要将采集到的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>] [--reports=<msprof_config_sample.json>] [--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。 |
可选 |
--reports |
传入用户自定义的msprof_config_sample.json配置文件,会根据配置文件中指定的范围导出相应的性能数据。详见--reports参数使用介绍。 |
可选 |
--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解析并导出。
--reports参数使用介绍
命令示例:
msprof --export=on --output=./ --reports=${INSTALL_DIR}/tools/profiler/profiler_tool/analysis/msconfig/msprof_config_sample.json
${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。若安装的Ascend-cann-toolkit软件包,以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/ascend-toolkit/latest。
路径中不能包含特殊字符:"\n", "\\n", "\f", "\\f", "\r", "\\r", "\b", "\\b", "\t", "\\t", "\v", "\\v", "\u007F", "\\u007F", "\"", "\\\"", "'", "\'", "\\", "\\\\", "%", "\\%", ">", "\\>", "<", "\\<", "|", "\\|", "&", "\\&", "$", "\\$", ";", "\\;", "`", "\\`"。

- --reports参数指定的是msprof_config_sample.json文件。需要与--export同时配置,仅支持--type=text,且仅支持对json文件的timeline数据进行控制,csv文件的summary数据依然为全量导出。
- 不支持软链接,文件大小最大阈值为64M,文件路径加上文件名长度最大阈值为1024字符。
msprof_config_sample.json文件默认保存在${CANN_PATH}/tools/profiler/profiler_tool/analysis/msconfig/目录下,内容如下:
支持在任意有读写权限的目录下自行创建msprof_config_sample.json文件。
{ "json_process": { "ascend": true, "acc_pmu": true, "cann": true, "ddr": true, "stars_chip_trans": true, "hbm": true, "hccl": true, "hccs": true, "network_usage": true, "disk_usage": true, "memory_usage": true, "cpu_usage": true, "msproftx": true, "npu_mem": true, "overlap_analyse": true, "pcie": true, "sio": true, "stars_soc": true, "step_trace": true, "freq": true, "llc": true, "nic": true, "roce": true, "qos": true, "device_tx": true } }
以上为控制相应性能数据的开关,可配置开启(true)或关闭(false或删除字段)。控制的性能数据包括msprof_*.json文件的timline数据层级(包括CANN,Ascend Hardware、AI Core Freq、片上内存、HCCL、Overlap Analysis、NPU_MEM层级等)。

- 导出以上数据的前提是原始性能数据中已存在相应数据,即相应数据已采集。
- 需确保msprof_config_sample.json文件格式正确,否则可能导致如下情况:
- 文件内容错误,如拼写错误,--reports参数不生效,导出全量性能数据。
- 文件读取失败,如权限问题、文件不存在等,导致--reports无法读取配置文件,则会中断导出进程并报错。