导出性能数据

Atlas 200/500 A2推理产品Ascend RC场景不支持在设备上直接解析,需要将采集到的PROF_XXX目录拷贝到安装了Ascend-cann-toolkit开发套件包的环境下进行解析并导出。

前提条件

操作步骤

执行导出命令。

命令示例如下:

msprof --export=on --output=<dir> [--iteration-id=<number>] [--model-id=<number>] [--summary-format=<csv/json>] [--clear=on]
表1 参数说明

参数

说明

可选/必选

--export

解析并导出性能数据。可选on或off,默认值为off。

若需导出个别迭代(Iteration ID)/模型(Model ID)的数据,可在msprof采集命令执行完成后重新执行msprof --export命令配置--model-id、--iteration-id参数。

对于未解析的PROF_XXX文件,自动解析后再导出。

示例:./msprof --export=on --output=/home/HwHiAiUser

必选

--output

性能数据文件目录。须指定为PROF_XXX目录,例如:/home/HwHiAiUser/profiler_data/PROF_XXX。

必选

--type

设置性能数据解析结果文件格式,即可以选择msprof命令行执行采集后自动解析的结果文件格式,取值为:

  • text:表示解析为timeline和summary格式文件。详见性能数据文件参考
  • db:表示解析为一个汇总所有性能数据的.db格式文件(report_时间戳.db)。使用Ascend Insight工具展示。Atlas 200/300/500 推理产品不支持系统数据解析。

默认为text。

可选

--iteration-id

迭代ID。需配置为正整数。与--model-id必须同时配置。

  • --model-id=4294967295时,指定以Step为粒度统计的迭代ID(每执行完成一个Step,Iteration ID加1)。仅Atlas A2训练系列产品支持。仅支持解析MindSpore框架的性能数据。
  • --model-id配置为其他值时,指定以Graph为粒度统计的迭代ID(每个Graph执行一次,Iteration ID加1,当一个脚本被编译为多个Graph时,该ID与脚本层面的Step ID不一致)。

可选

--model-id

模型ID。需配置为正整数。与--iteration-id必须同时配置。

  • --model-id=4294967295时,为Step模式,即--iteration-id配置的值以Step为粒度解析。仅Atlas A2训练系列产品支持。仅支持解析MindSpore框架的性能数据。
  • --model-id配置为其他值时,为Graph模式,即--iteration-id配置的值以Graph为粒度解析。

可选

--summary-format

summary数据文件的导出格式,取值为:

  • json:解析出的summary数据文件为json格式。
  • csv:解析出的summary数据文件为csv,默认值。

可选

--python-path

指定解析使用的Python解释器路径,要求Python3.7.5及以上版本。

可选

--clear

数据精简模式,开启后将在导出性能数据后删除PROF_XXX目录下的sqlite目录,以节省存储空间。可选on或off,默认值为off。

可选

注1:Atlas 200/300/500 推理产品默认情况下,即未配置--iteration-id和--model-id时,导出迭代数最多的模型ID(Model ID)的性能数据;其他芯片默认情况下,导出所有性能数据。

注2:单算子场景和仅执行采集昇腾AI处理器系统数据场景,不支持--iteration-id和--model-id参数。

执行完上述命令后,会在collection-dir目录下的PROF_XXX目录下生成mindstudio_profiler_output目录。

生成的性能数据目录结构如下所示。

  • 多Device场景下,若启动单采集进程,则仅生成一个PROF_XXX目录,若启动多采集进程则生成多个PROF_XXX目录,其中Device目录在PROF_XXX目录下生成,每个PROF_XXX目录下生成多少个Device目录与用户实际操作有关,不影响性能数据分析。
  • 性能数据详细介绍请参见性能数据文件参考
  • mindstudio_profiler_output目录中的文件是根据采集的实际性能数据进行生成,如果实际的性能数据没有相关的数据文件,就不会导出对应的timeline和summary数据。