采集AI任务运行性能数据
产品支持情况
产品 |
是否支持 |
|---|---|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
功能说明
msprof支持采集AI任务运行时相关的性能数据,并且在采集后可以自动进行性能数据解析和文件落盘。
命令格式(Ascend EP )
登录运行环境,可在任意目录下执行以下命令。
- 方式一(推荐):在msprof命令末尾,直接传入用户程序或执行脚本。
msprof [options] <app>
- 方式二:通过--application参数传入用户程序或执行脚本
msprof [options] --application=<app>
命令格式(Ascend RC )
登录运行环境,进入msprof工具所在目录“/var”,执行以下命令。
- 方式一(推荐):在msprof命令末尾,直接传入用户程序或执行脚本。
./msprof [options] <app>
- 方式二:通过--application参数传入用户程序或执行脚本
./msprof [options] --application=<app>
参数说明
参数 |
可选/必选 |
说明 |
产品支持情况 |
性能数据文件 |
|---|---|---|---|---|
--ascendcl=<ascendcl-value> |
可选 |
控制acl接口性能数据采集的开关,可选on或off,默认为on。 可采集acl接口性能数据,包括Host与Device之间、Device间的同步异步内存复制时延等。 |
||
--model-execution=<model-execution-value> |
可选 |
控制ge model execution性能数据采集开关,可选on或off,默认为off。 说明:
此开关后续版本会废弃,请使用--task-time开关控制相关数据采集。 |
||
--runtime-api=<runtime-api-value> |
可选 |
控制runtime API性能数据采集开关,可选on或off,默认为off。可采集runtime API性能数据,包括Host与Device之间、Device间的同步异步内存复制时延等。 |
||
--hccl=<hccl-value> |
可选 |
控制通信数据采集开关,可选on或off,默认为off。该数据只在多卡、多节点或集群场景下生成。 说明:
此开关后续版本会废弃,请使用--task-time开关控制相关数据采集。 |
msprof_*.json中的Communication层级和communication_statistic_*.csv文件 |
|
--task-time=<task-time-value> |
可选 |
控制采集算子下发耗时和算子执行耗时的开关。涉及在task_time、op_summary、op_statistic等文件中输出相关耗时数据。配置值:
|
msprof_*.json中的CANN层级和api_statistic_*.csv文件 msprof_*.json中的Ascend Hardware层级和task_time_*.csv文件 msprof_*.json中的Communication层级和communication_statistic_*.csv文件 |
|
--aicpu=<aicpu-value> |
可选 |
采集AICPU算子的详细信息,如:计算耗时、数据拷贝耗时等。可选on或off,默认值为off。 |
||
--ai-core=<aicore-value> |
可选 |
AI Core数据采集开关。取值可选on或off,--task-time配置为on、l1时,默认为on;--task-time配置为off、l0时,默认为off。 说明:
对于以下产品,AI Core的工作模式为分离模式,Cube Core和Vector Core的部分指标将分别进行统计,请以实际结果为准。 |
||
--aic-mode=<aic-mode-value> |
可选 |
AI Core硬件的采集类型,可选值task-based或sample-based。该参数配置前提是--ai-core参数设置为on。task-based是以task为粒度进行性能数据采集,sample-based是以固定的时间周期进行性能数据采集。 采集AI任务性能数据时建议使用task-based,如果不配置默认为task-based。 |
- |
|
--aic-freq=<aic-freq-value> |
可选 |
sample-based场景下的采样频率,默认值100,范围1~100,单位Hz。该参数配置前提是--ai-core参数设置为on。 |
- |
|
--aic-metrics=<aic-metrics-value> |
可选 |
AI Core性能指标采集项。该参数配置前提是--ai-core参数设置为on。各采集项详细信息请参考op_summary_*.csv中的说明。 取值包括:
说明:
支持自定义需要采集的寄存器,例如:--aic-metrics=Custom:0x49,0x8,0x15,0x1b,0x64,0x10。
|
||
--sys-hardware-mem=<sys-hardware-mem-value> |
可选 |
片上内存读写速率、QoS传输带宽、LLC三级缓存带宽、加速器带宽、SoC传输带宽、组件内存占用等的采集开关,可选on或off,默认为off。不同产品的采集内容略有差异,请以实际结果为准。 |
||
--sys-hardware-mem-freq=<sys-hardware-mem-freq-value> |
可选 |
--sys-hardware-mem的采集频率,范围[1,100],默认值为50,单位Hz。 设置该参数需要--sys-hardware-mem参数设置为on。 说明:
对于以下产品,采集任务结束后,不建议用户增大采集频率,否则可能导致SoC传输带宽数据丢失。 |
- |
|
--l2=<l2-value> |
可选 |
采集L2 Cache的命中率,可选on或off,默认为off。
|
||
--ge-api=<ge-api-value> |
可选 |
采集动态Shape算子在Host调度阶段的耗时数据。相关数据生成在msprof_*.json和api_statistic_*.csv文件中。 取值:
|
||
--task-memory=<task-memory-value> |
可选 |
CANN算子级内存占用情况采集开关,用于优化内存使用。取值:
单算子场景下,按照GE组件维度和算子维度采集算子内存大小及生命周期信息(单算子API执行场景不采集GE组件内存);静态图和静态子图场景下,按照算子维度采集算子内存大小及生命周期信息。 |
单算子场景生成: 静态图和静态子图场景生成: |
使用示例
msprof --output=/home/projects/output --ascendcl=on --runtime-api=on --task-time=on --aicpu=on --ai-core=on /home/projects/MyApp/out/main
./msprof --output=/home/projects/output --ascendcl=on --runtime-api=on --task-time=on --aicpu=on --ai-core=on /home/projects/MyApp/out/main
msprof命令执行完成后,会自动解析并导出性能数据结果文件,详细内容请参见性能数据文件参考。
