采集AI处理器系统数据
功能说明
msprof支持采集AI处理器的系统数据,并且在采集后可以自动进行性能数据解析和文件落盘。
命令格式
msprof --output=<path> --sys-devices=<ID> --sys-period=<period> [options]
msprof [options] <app>
./msprof --output=<path> --sys-devices=<ID> --sys-period=<period> [options]
./msprof [options] <app>
- app参数说明请参见app参数说明,options参数说明请参见参数说明。
Ascend EP 场景下,使用msprof命令行方式采集整网推理Profiling数据时,如果通过配置--llc-profiling、--sys-cpu-profiling、--sys-profiling和--sys-pid-profiling采集项采集相应数据,采集完成后,除--sys-cpu-profiling采集项仅生成TS CPU数据外,其余采集项均不会生成数据;但在不传入用户程序时,配置上述几个采集项均会有数据生成。- 对于以下型号,--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 推理系列产品 - Atlas 350 加速卡
参数说明
- --sys-period=<sys-period-value>:不传入用户程序时,该参数必选。系统的采样时长,取值范围大于0,上限为30*24*3600,单位s。传入用户程序时,该参数不生效。
- --sys-devices=<sys-devices-value>:不传入用户程序时,该参数必选。设备ID。可以为all或多个设备ID(以逗号分隔)。传入用户程序时,该参数不生效。
- --ai-core=<aicore-value>:可选,AI 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。
- --aic-freq=<aic-freq-value>:可选,sample-based场景下的采样频率,默认值100,范围1~100,单位Hz。该参数配置前提是--ai-core参数设置为on。
- --aic-metrics=<aic-metrics-value>:可选,AI Core性能指标采集项。该参数配置前提是--ai-core参数设置为on。取值包括:
- ArithmeticUtilization:计算类指令耗时占比
- PipeUtilization:计算类和搬运类指令耗时和占比。
- Memory:内存读写带宽速率
- MemoryL0:L0读写带宽速率
- MemoryUB:UB读写带宽速率
- ResourceConflictRatio:资源冲突占比
- L2Cache:L2 Cache命中率
- PipelineExecuteUtilization:计算类和搬运类指令耗时和占比
Atlas 训练系列产品 :不支持Atlas A2 训练系列产品 /Atlas A2 推理系列产品 :不支持Atlas A3 训练系列产品 /Atlas A3 推理系列产品 :不支持Atlas 350 加速卡:不支持
- MemoryAccess:
Atlas 推理系列产品 :不支持Atlas 训练系列产品 :不支持Atlas 350 加速卡:不支持
默认值:
Atlas 200I/500 A2 推理产品 :PipelineExecuteUtilizationAtlas 推理系列产品 :PipeUtilizationAtlas 训练系列产品 :PipeUtilizationAtlas A2 训练系列产品 /Atlas A2 推理系列产品 :PipeUtilizationAtlas A3 训练系列产品 /Atlas A3 推理系列产品 :PipeUtilizationAtlas 350 加速卡:PipeUtilization
支持自定义需要采集的寄存器,例如:--aic-metrics=Custom:0x49,0x8,0x15,0x1b,0x64,0x10。Custom字段表示自定义类型,配置为具体的寄存器值,范围[0x1, 0x7FFFFFFF]。并非所有的可取值都有对应的PMU寄存器,若配置的值无对应PMU寄存器,则采集结果可能为0。配置的寄存器数最多不能超过8个,寄存器通过“,”区分开。寄存器的值支持十六进制或十进制。
- --sys-hardware-mem=<sys-hardware-mem-value>:可选,片上内存读写速率、QoS传输带宽、LLC三级缓存带宽、加速器带宽、SoC传输带宽、组件内存占用等的采集开关,可选on或off,默认为off。不同型号的采集内容略有差异,请以实际结果为准。
采集组件内存数据需要在采集AI任务性能数据(即传入用户程序)时才能采集到具体性能数据。
已知在安装有glibc<2.34的环境上采集memory数据,可能触发glibc的一个已知Bug 19329,通过升级环境的glibc版本可解决此问题。
- --sys-hardware-mem-freq=<sys-hardware-mem-freq-value>:可选,--sys-hardware-mem的采集频率,范围[1,100],默认值为50,单位Hz。
Atlas 350 加速卡,Qos和SoC支持的采集频率最大支持配置10000,其他采集项支持的最大采集频率仍为100,若配置超出范围,其他采集项则按照最大采集频率100进行采集。
设置该参数需要--sys-hardware-mem参数设置为on。
对于以下型号,采集任务结束后,不建议用户增大采集频率,否则可能导致SoC传输带宽数据丢失。
Atlas 200I/500 A2 推理产品 Atlas A2 训练系列产品 /Atlas A2 推理系列产品 Atlas A3 训练系列产品 /Atlas A3 推理系列产品 - --llc-profiling=<llc-profiling-value>:可选,LLC Profiling采集事件,需要--sys-hardware-mem设置为on。取值包括:
- read:读事件,三级缓存读速率,默认为read。
- write:写事件,三级缓存写速率。
- --sys-cpu-profiling=<sys-cpu-profiling-value>:可选,CPU(AI CPU、Ctrl 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、UB带宽数据采集开关。可选on或off,默认值为off。
Atlas 200I/500 A2 推理产品 :仅RC场景支持采集NIC,容器场景参数不生效Atlas 推理系列产品 :不支持该参数。Atlas 训练系列产品 :支持采集NIC和ROCEAtlas A2 训练系列产品 /Atlas A2 推理系列产品 :支持采集NIC、ROCE和MACAtlas A3 训练系列产品 /Atlas A3 推理系列产品 :支持采集NIC、ROCE和MAC- Atlas 350 加速卡:支持采集UB带宽数据
- --sys-io-sampling-freq=<sys-io-sampling-freq-value>:可选,NIC、ROCE、MAC、UB带宽数据采集频率,范围[1,100],默认值为100,单位Hz。设置该参数需要--sys-io-profiling参数设置为on。
Atlas 200I/500 A2 推理产品 不支持该参数。 - --sys-interconnection-profiling=<sys-interconnection-profiling-value>:可选,集合通信带宽数据(HCCS)、集合通信硬件加速单元(CCU)带宽数据、PCIe数据、片间传输带宽信息、SIO数据、UB带宽数据采集开关。不同型号的采集内容略有差异,请以实际结果为准。可选on或off,默认值为off。
Atlas 200I/500 A2 推理产品 不支持该参数。Atlas 推理系列产品 :支持采集PCIe数据Atlas 训练系列产品 :支持采集HCCS、PCIe数据Atlas A2 训练系列产品 /Atlas A2 推理系列产品 :支持采集HCCS、PCIe数据、片间传输带宽信息Atlas A3 训练系列产品 /Atlas A3 推理系列产品 :支持采集HCCS、PCIe数据、片间传输带宽信息、SIO数据。- Atlas 350 加速卡:支持采集CCU带宽数据、PCIe数据、片间传输带宽信息、SIO数据、UB带宽数据。
- --sys-interconnection-freq=<sys-interconnection-freq-value>:可选,集合通信带宽数据(HCCS)、集合通信硬件加速单元(CCU)带宽数据、PCIe数据采集频率、片间传输带宽信息采集频率、SIO数据采集频率、UB带宽数据采集频率,范围[1,50],默认值为50,单位Hz。
设置该参数需要--sys-interconnection-profiling参数设置为on。
Atlas 200I/500 A2 推理产品 不支持该参数。 - --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。
Atlas A2 训练系列产品 /Atlas A2 推理系列产品 Atlas A3 训练系列产品 /Atlas A3 推理系列产品 Atlas 350 加速卡
需要在单算子API执行场景下采集AI任务性能数据(即传入用户程序)时才能采集到具体性能数据。
对于Atlas 350 加速卡,可能会因最后一段指令的统计时间超长导致统计不准确,建议使用msprof op方式采集。
该开关与--ascendcl、--model-execution、--runtime-api、--hccl、--task-time、--aicpu、--ai-core、--aic-mode、--aic-freq、--aic-metrics、--l2互斥,无法同时使用。
- --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。
仅以下型号支持该参数:
Atlas A2 训练系列产品 /Atlas A2 推理系列产品 Atlas A3 训练系列产品 /Atlas A3 推理系列产品
使用示例
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
在--output指定的目录下生成PROF_XXX目录,存放自动解析后的性能数据,相关结果文件请参见性能数据文件参考。
./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
在--output指定的目录下生成PROF_XXX目录,该目录下的文件未经解析无法查看,您需要将PROF_XXX目录上传到开发环境进行数据解析,具体操作方法请参见使用msprof命令解析、查询与导出性能数据。