msprof采集Job Profiling数据
命令示例
命令示例如下:
# 登录运行环境并进入“msprof”文件所在目录执行以下命令。
./msprof --application=/home/HwHiAiUser/HIAI_PROJECTS/MyAppname/out/main --output=/home/HwHiAiUser --model-execution=on --runtime-api=on --aicpu=on
参数说明
参数 |
描述 |
可选/必选 |
---|---|---|
--ascendcl |
控制acl性能数据采集的开关,可选on或off,默认为on。该参数配置前提是application参数已配置。 可采集acl性能数据,Host与Device之间、Device间的同步异步内存复制时延acl性能数据。 |
可选 |
--model-execution |
控制ge model execution性能数据采集开关,可选on或off,默认为off。该参数配置前提是application参数已配置。 |
可选 |
--runtime-api |
控制runtime api性能数据采集开关,可选on或off,默认为off。该参数配置前提是application参数已配置。 可采集runtime-api性能数据(不包含Host和Devise之间的数据搬运),Host与Device之间、Device间的同步异步内存复制时延runtime-api性能数据。 |
可选 |
--hccl |
控制hccl数据采集开关,可选on或off,默认为off。该参数配置前提是application参数已配置。 |
可选 |
--task-time |
控制hwts log数据采集以及Host与Device之间、Device间的异步内存复制时延性能数据开关。 可选on或off,默认为on。该参数配置前提是application参数已配置。 |
可选 |
--aicpu |
采集AICPU算子的详细信息,如:算子执行时间、数据拷贝时间等。可选on或off,默认值为off。该参数配置前提是application参数已配置。 |
可选 |
--ai-core |
控制AI Core数据采集的开关,可选on或off,默认值为on。 |
可选 |
--aic-mode |
AI Core硬件的采集类型,可选值task-based或sample-based,默认task-based。task-based是以task为粒度进行性能数据采集,sample-based是以固定的时间周期进行性能数据采集。 该参数配置前提是ai-core参数设置为on。 |
可选 |
--aic-freq |
sample-based场景下的采样频率,默认值100,范围1~100,单位hz。 该参数配置前提是ai-core参数设置为on。 |
可选 |
--aic-metrics |
AI Core性能指标采集项,默认为PipeUtilization,包括ArithmeticUtilization、PipeUtilization、Memory、MemoryL0、MemoryUB、ResourceConflictRatio。以上各参数值对应的详细采集指标请参见AI Core性能指标采集项说明。 该参数配置前提是ai-core参数设置为on。 |
可选 |
--msproftx |
控制msproftx用户和上层框架程序输出性能数据的开关,可选on或off,默认值为off。 Profiling开启msproftx功能之前,需要在程序内调用msproftx相关接口来开启程序的Profiling数据流的输出,详细操作请参见Profiling AscendCL API for Extension(Profiling AscendCL API扩展接口)。 |
可选 |
采集数据说明
配置msprof采集Job Profiling数据参数后生成的Profiling数据如表2和表3所示。
timeline文件名 |
相关参数 |
说明 |
---|---|---|
msprof_{device_id}_{model_id}_{iter_id}.json |
all |
timeline数据总表。详情请参见timeline数据总表。 |
task_time_{device_id}_{model_id}_{iter_id}.json |
--task-time |
AI core、AI cpu、All reduce并行度分析数据。文件详情请参见AI core、AI cpu、All reduce并行度分析数据说明。 |
acl_{device_id}_{model_id}_{iter_id}.json |
--ascendcl |
AscendCL接口耗时数据。文件详情请参见AscendCL接口耗时数据说明。 |
runtime_api_{device_id}_{model_id}_{iter_id}.json |
--runtime-api |
Runtime接口耗时数据。文件详情请参见Runtime接口耗时数据说明。 |
step_trace_{device_id}_{model_id}_{iter_id}.json |
- |
迭代轨迹数据,每轮迭代的耗时。文件详情请参见迭代轨迹数据说明。 |
ge_{device_id}_{model_id}_{iter_id}.json |
--model-execution |
GE接口耗时数据。文件详情请参见GE接口耗时数据说明。 |
hccl_{device_id}_{model_id}_{iter_id}.json |
--hccl |
HCCL数据。文件详情请参见HCCL数据说明。 |
msproftx |
msproftx数据,通过Profiling AscendCL API for Extension(Profiling AscendCL API扩展接口)采集用户和上层框架程序的性能数据,并由msprof命令行的--msproftx参数进行数据导出。 |
|
注:{device_id}表示设备ID,{model_id}表示模型ID,{iter_id}表示某轮迭代的ID号。 |
summary文件名 |
相关参数 |
说明 |
---|---|---|
op_summary_{device_id}_{model_id}_{iter_id}.csv |
--task-time(可选) --ai-core(可选) --aic-metrics(可选) --aicpu(可选) 配置--task-time、--ai-core和--aic-metrics生成AI Core算子信息;配置--aicpu生成AI CPU算子信息。 |
AI Core数据,获取每轮迭代的每个task的ai core metrics的耗时。文件详情请参见AI Core数据说明。 |
op_statistic_{device_id}_{model_id}_{iter_id}.csv |
--task-time(可选) --ai-core(可选) --aic-metrics(可选) --aicpu(可选) 配置--task-time、--ai-core和--aic-metrics生成AI Core算子信息;配置--aicpu生成AI CPU算子信息。 |
AI Core算子计数表,从算子类型维度找出耗时最大的算子类型。文件详情请参见AI Core算子调用次数及耗时数据说明。 |
step_trace_{device_id}_{model_id}_{iter_id}.csv |
- |
迭代轨迹数据。文件详情请参见迭代轨迹数据说明。 |
task_time_{device_id}_{model_id}_{iter_id}.csv |
--task-time |
Task Scheduler任务调度信息。文件详情请参见Task Scheduler的任务调度信息数据说明。 |
acl_{device_id}_{model_id}_{iter_id}.csv |
--ascendcl |
AscendCL接口的耗时。详情请参见AscendCL接口耗时数据说明。 |
runtime_api_{device_id}_{model_id}_{iter_id}.csv |
--runtime-api |
每个runtime api的调用时长。详情请参见Runtime接口耗时数据说明。 |
aicpu_{device_id}_{model_id}_{iter_id}.csv |
--aicpu |
AI CPU数据。文件详情请参见AI CPU数据说明。 |
dp_{device_id}_{model_id}_{iter_id}.csv |
- |
数据增强Data PreProcess数据。文件详情请参见数据增强数据说明。 |
fusion_op_{device_id}_{model_id}_{iter_id}.csv |
- |
模型中算子融合前后信息。详情请参见模型中算子融合前后信息数据说明。 |
注:{device_id}表示设备ID,{model_id}表示模型ID,{iter_id}表示某轮迭代的ID号。 |