性能数据采集

msprof工具说明

Profiling数据通过可执行文件“msprof”进行数据采集。其功能和安装路径如下。

表1 msprof文件介绍

文件名

功能

路径

msprof

运行环境中采集Profiling性能数据。

例如:

Ascend EP场景下路径为/home/HwHiAiUser/Ascend/ascend-toolkit/latest/tools/profiler/bin

Ascend RC场景下路径为/var

前提条件

采集Profiling数据前,需确保编译生成的应用工程或算子工程能在运行环境中正常运行。

使用该方式采集Profiling数据前请确保完成环境搭建

命令示例

以Ascend-cann-toolkit开发套件包运行用户登录所在环境,根据前提条件配置环境变量后执行命令,命令示例如下:

msprof --application=/home/HwHiAiUser/HIAI_PROJECTS/MyAppname/out/main --output=/home/HwHiAiUser --model-execution=on --runtime-api=on --aicpu=on

使用msprof采集更完整的性能数据请参见性能数据采集(msprof命令行方式)

采集数据说明

Ascend RC场景下,msprof会自动解析采集到的Profiling数据,并默认导出迭代数最多的模型ID(Model ID)对应的性能数据。

导出生成的Profiling数据目录结构如图1所示。

图1 Profiling数据目录结构(仅为示例)

其中,timeline目录汇总了AI任务运行的时序信息,summary目录汇总了AI任务运行时的软硬件数据,timeline和summary目录内各文件如表2表3所示。

表2 msprof常用配置采集的性能数据文件(timeline)

文件名

相关参数

说明

msprof*.json

所有可生成数据的参数均会在此文件写入数据。

timeline数据总表。对采集到的timeline性能数据按照迭代粒度进行性能展示。

ai_stack_time_*.json

--model-execution

--runtime-api

--task-time

以上参数必选其一。

昇腾AI软件栈各组件(AscendCL,GE,Runtime,Task Scheduler等)运行时序。

step_trace_*.json

--task-time

迭代轨迹数据。

task_time_*.json

--task-time

Task Scheduler任务调度时序。

ge_*.json

--task-time

--model-execution

以上参数必选其一。

GE接口耗时数据。

runtime_api_*.json

--runtime-api

Runtime接口耗时数据。

注1:“*”表示{device_id}_{model_id}_{iter_id},其中{device_id}表示设备ID,{model_id}表示模型ID,{iter_id}表示某轮迭代的ID。这些字段可以使用数据解析与导出完成数据解析后,使用数据解析与导出中的“查询Profiling数据文件信息查询功能”对结果文件进行查询得出,若查询某些字段显示为N/A(为空)则在导出的结果文件名中不展示。

注2:性能数据详细情况请参见Profiling数据说明

表3 msprof常用配置采集的性能数据文件(summary)

文件名

相关参数

说明

op_summary_*.csv

--task-time

AI Core和AI CPU算子数据。

op_statistic _*.csv

--task-time

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

step_trace_*.csv

--task-time

迭代轨迹数据。

task_time_*.csv

--task-time

Task Scheduler任务调度信息。

ai_stack_time_*.csv

--model-execution

--runtime-api

--task-time

以上参数必选其一。

昇腾AI软件栈各组件(AscendCL,GE,Runtime,Task Scheduler等)信息。

aicpu_*.csv

--aicpu

AI CPU数据。

runtime_api_*.csv

--runtime-api

每个runtime api的调用时长。

注1:“*”表示{device_id}_{model_id}_{iter_id},其中{device_id}表示设备ID,{model_id}表示模型ID,{iter_id}表示某轮迭代的ID。这些字段可以使用数据解析与导出完成数据解析后,使用数据解析与导出中的“查询Profiling数据文件信息查询功能”对结果文件进行查询得出,若查询某些字段显示为N/A(为空)则在导出的结果文件名中不展示。

注2:性能数据详细情况请参见Profiling数据说明