采集昇腾AI处理器系统数据
产品支持情况
产品 |
是否支持 |
|---|---|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
功能说明
msprof支持采集昇腾AI处理器的系统数据,并且在采集后可以自动进行性能数据解析和文件落盘。
命令格式(Ascend EP )
登录运行环境,可在任意目录下执行以下命令。
- 方式一(推荐):在msprof命令末尾,直接传入用户程序或执行脚本。
msprof [options] <app>
- 方式二:通过--application参数传入用户程序或执行脚本
msprof [options] --application=<app>
- app为可选,相关参数说明请参见app参数说明,options参数说明请参见参数说明。两者配合使用时有如下要求:不传入用户程序,表示仅采集昇腾AI处理器系统数据,此时--output、--sys-period、--sys-devices参数必选。若同时传入用户程序及昇腾AI处理器系统数据参数,此时--sys-period和--sys-devices参数不生效。
Ascend EP 场景下,使用msprof命令行方式采集整网推理Profiling数据时,如果通过配置--llc-profiling、--sys-cpu-profiling、--sys-profiling和--sys-pid-profiling采集项采集相应数据,采集完成后,除--sys-cpu-profiling采集项仅生成TS CPU数据外,其余采集项均不会生成数据;但在不传入用户程序时,配置上述几个采集项均会有数据生成。- 对于
Atlas A2 训练系列产品 /Atlas A2 推理系列产品 ,--instr-profiling开关与--ascendcl、--model-execution、--runtime-api、--hccl、--task-time、--aicpu、--ai-core、--aic-mode、--aic-freq、--aic-metrics、--l2互斥,无法同时执行。 - 对于
Atlas A3 训练系列产品 /Atlas A3 推理系列产品 ,--instr-profiling开关与--ascendcl、--model-execution、--runtime-api、--hccl、--task-time、--aicpu、--ai-core、--aic-mode、--aic-freq、--aic-metrics、--l2互斥,无法同时执行。 - 对于以下产品,--sys-profiling、--sys-pid-profiling、--sys-cpu-profiling参数不支持同时采集共用OS的两个Device。例如:该产品的Device为[0,7],但0和1、2和3、4和5、6和7分别共用OS,那么此时--sys-devices则不能同时配置0和1、2和3、4和5、6和7,可以配置0、2、4、6或1、3、5、7。
Atlas A3 训练系列产品 /Atlas A3 推理系列产品
命令格式(Ascend RC )
登录运行环境,进入msprof工具所在目录“/var”,执行以下命令。
- 方式一(推荐):在msprof命令末尾,直接传入用户程序或执行脚本。
./msprof [options] [application] [application-arguments]
- 方式二:通过--application参数传入用户程序或执行脚本
./msprof [options] --application=<app>
参数说明
参数 |
可选/必选 |
说明 |
产品支持情况 |
性能数据文件 |
|---|---|---|---|---|
--sys-period=<sys-period-value> |
不传入用户程序时,该参数必选 |
系统的采样时长,取值范围大于0,上限为30*24*3600,单位s。 |
- |
|
--sys-devices=<sys-devices-value> |
不传入用户程序时,该参数必选 |
设备ID。可以为all或多个设备ID(以逗号分隔)。 |
- |
|
--ai-core=<aicore-value> |
可选 |
AI Core数据采集开关。 说明:
对于以下产品,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处理器系统数据时建议使用sample-based,如果不配置默认为sample-based。 |
msprof_*.json中的AI Core Utilization层级和ai_core_utilization_*.csv文件 |
|
--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。
|
msprof_*.json中的AI Core Utilization层级和ai_core_utilization_*.csv文件 |
|
--sys-hardware-mem=<sys-hardware-mem-value> |
可选 |
片上内存读写速率、QoS传输带宽、LLC三级缓存带宽、加速器带宽、SoC传输带宽、组件内存占用等的采集开关,可选on或off,默认为off。不同产品的采集内容略有差异,请以实际结果为准。 采集组件内存数据需要在采集AI任务性能数据(即传入用户程序)时才能采集到具体性能数据。 |
msprof_*.json中的LLC层级和llc_read_write_*.csv文件 msprof_*.json中的Stars Soc Info层级 msprof_*.json中的NPU MEM层级和npu_mem_*.csv文件 npu_module_mem_*.csv(需传入用户程序) |
|
--sys-hardware-mem-freq=<sys-hardware-mem-freq-value> |
可选 |
--sys-hardware-mem的采集频率,范围[1,100],默认值为50,单位Hz。 设置该参数需要--sys-hardware-mem参数设置为on。 说明:
对于以下产品,采集任务结束后,不建议用户增大采集频率,否则可能导致SoC传输带宽数据丢失。 |
- |
|
--llc-profiling=<llc-profiling-value> |
可选 |
LLC Profiling采集事件,需要--sys-hardware-mem设置为on。取值包括:
|
- |
|
--sys-cpu-profiling=<sys-cpu-profiling-value> |
可选 |
CPU(AI CPU、Ctrl CPU、TS CPU)采集开关。可选on或off,默认值为off。 |
||
--sys-cpu-freq=<sys-cpu-freq-value> |
可选 |
CPU采集频率,范围[1,50],默认值为50,单位Hz。 设置该参数需要--sys-cpu-profiling参数设置为on。 |
- |
|
--sys-profiling=<sys-profiling-value> |
可选 |
系统CPU usage及System memory采集开关。可选on或off,默认值为off。 说明:
使用该命令后,Profiling工具会调用Device侧的Perf工具,Perf仅执行相关性能数据采集,无法获取其他运行态信息,实际风险小。 |
||
--sys-sampling-freq=<sys-sampling-freq-value> |
可选 |
系统CPU usage及System memory采集频率,范围[1,10],默认值为10,单位Hz。 设置该参数需要--sys-profiling参数设置为on。 |
- |
|
--sys-pid-profiling=<sys-pid-profiling-value> |
可选 |
所有进程的CPU usage及所有进程的memory采集开关。可选on或off,默认值为off。 |
||
--sys-pid-sampling-freq=<sys-pid-sampling-freq-value> |
可选 |
所有进程的CPU usage及所有进程的memory采集频率,范围[1,10],默认值为10,单位Hz。 设置该参数需要--sys-pid-profiling参数设置为on。 |
- |
|
--sys-io-profiling=<sys-io-profiling-value> |
可选 |
NIC、ROCE、MAC采集开关。可选on或off,默认值为off。
|
msprof_*.json中的NIC层级和nic_*.csv文件 |
|
--sys-io-sampling-freq |
可选 |
NIC、ROCE、MAC采集频率,范围[1,100],默认值为100,单位Hz。 设置该参数需要--sys-io-profiling参数设置为on。 |
- |
|
--sys-interconnection-profiling=<sys-interconnection-profiling-value> |
可选 |
集合通信带宽数据(HCCS)、PCIe数据采集开关、片间传输带宽信息采集开关、SIO数据采集开关。可选on或off,默认值为off。
|
msprof_*.json中的PCIe层级和pcie_*.csv文件 msprof_*.json中的HCCS层级和hccs_*.csv文件 |
|
--sys-interconnection-freq=<sys-interconnection-freq-value> |
可选 |
集合通信带宽数据(HCCS)、PCIe数据采集频率、片间传输带宽信息采集频率、SIO数据采集频率,范围[1,50],默认值为50,单位Hz。 设置该参数需要--sys-interconnection-profiling参数设置为on。 |
- |
|
--dvpp-profiling=<dvpp-profiling-value> |
可选 |
DVPP采集开关,可选on或off,默认值为off。 |
||
--dvpp-freq=<dvpp-freq-value> |
可选 |
DVPP采集频率,范围[1,100],默认值为50,单位Hz。 设置该参数需要--dvpp-profiling参数设置为on。 |
- |
|
--instr-profiling=<instr-profiling-value> |
可选 |
AI Core(包括AIC和AIV核)的带宽和时延采集开关,可选on或off,默认值为off。 需要在单算子场景下采集AI任务性能数据(即传入用户程序)时才能采集到具体性能数据。 |
||
--instr-profiling-freq=<instr-profiling-freq-value> |
可选 |
AI Core(包括AIC和AIV核)的带宽和时延采样间隔,范围[300,30000],默认值为1000,单位cycle。系统对AI Core带宽和延时的真实采集频率=处理器的运行频率/该参数取值,假设AI Core运行频率为5000Hz,该参数取值为1000,则最终采集频率为5Hz,即每秒钟采集5次。 该参数使用前需要--instr-profiling设置为on。 |
- |
使用示例
msprof --output=/home/projects/output --sys-devices=<ID> --sys-period=<period> --ai-core=on --sys-hardware-mem=on --sys-cpu-profiling=on --sys-profiling=on --sys-pid-profiling=on --dvpp-profiling=on
./msprof --output=/home/projects/output --sys-devices=<ID> --sys-period=<period> --ai-core=on --sys-hardware-mem=on --sys-cpu-profiling=on --sys-profiling=on --sys-pid-profiling=on --dvpp-profiling=on
msprof命令执行完成后,会自动解析并导出性能数据结果文件,详细内容请参见性能数据文件参考。