以运行用户登录Ascend-cann-toolkit开发套件包所在环境,根据环境搭建配置环境变量后执行命令,命令示例如下:
msprof --output=/home/projects/output --sys-devices=<ID> --sys-period=<period> --ai-core=on --sys-hardware-mem=on --llc-profiling=on --sys-cpu-profiling=on --sys-profiling=on --sys-pid-profiling=on --dvpp-profiling=on
采集昇腾AI处理器系统数据--application参数不选,且--output必选。
参数 |
描述 |
是否必选 |
---|---|---|
--sys-period |
系统的采样时长,取值范围大于0,上限为30*24*3600,单位s。 |
是 |
--sys-devices |
设备ID。可以为all或多个设备ID(以逗号分隔)。 |
是 |
--ai-core |
控制AI Core和AI Vector Core数据采集的开关,可选on或off,默认值为off。仅Atlas A2训练系列产品支持AI Vector Core。 |
否 |
--aic-mode |
AI Core和AI Vector Core硬件的采集类型,可选值task-based或sample-based。仅Atlas A2训练系列产品支持AI Vector Core,但Atlas A2训练系列产品不支持sample-based。 task-based是以task为粒度进行性能数据采集,sample-based是以固定的时间周期进行性能数据采集。 配置为采集AI任务运行性能数据时自动识别为task-based;配置为采集昇腾AI处理器系统数据时自动识别为sample-based。 该参数配置前提是ai-core参数设置为on。 |
否 |
--aic-freq |
sample-based场景下的采样频率,范围[1,100],默认值为100,单位hz。 该参数配置前提是ai-core参数设置为on。 |
否 |
--aic-metrics |
AI Core和AI Vector Core性能指标采集项,默认为PipeUtilization,包括ArithmeticUtilization、PipeUtilization、Memory、MemoryL0、MemoryUB、ResourceConflictRatio、L2Cache。 仅Atlas A2训练系列产品支持AI Vector Core数据及L2Cache开关。 以上各参数值对应的详细采集指标请参见AI Core性能指标采集项说明和AI Core/AI Vector Core性能指标采集项说明(Atlas A2训练系列产品)。 该参数配置前提是ai-core参数设置为on。 说明:
支持自定义需要采集的寄存器,例如:--aic-metrics=Custom:0x49,0x8,0x15,0x1b,0x64,0x10。
|
否 |
--sys-hardware-mem |
控制片上内存的带宽及内存采集开关、LLC的读写带宽数据采集开关以及acc_pmu数据和SOC传输带宽信息采集开关,可选on或off,默认为off。 说明:
不同产品支持情况不同,请以实际实现为准。 |
否 |
--sys-hardware-mem-freq |
片上内存的带宽及内存信息采集频率、LLC的读写带宽数据采集频率以及acc_pmu数据和SOC传输带宽信息采集频率,范围[1,100],默认值为50,单位hz。 设置该参数需要sys-hardware-mem参数设置为on。 |
否 |
--llc-profiling |
LLC Profiling采集事件,可以设置为:
如要采集该数据,需要sys-hardware-mem设置为on。 |
否 |
--sys-cpu-profiling |
CPU(AI CPU、Ctrl CPU、TS CPU)采集开关。可选on或off,默认值为off。 |
否 |
--sys-cpu-freq |
CPU采集频率,范围[1,50],默认值为50,单位hz。 设置该参数需要sys-cpu-profiling参数设置为on。 |
否 |
--sys-profiling |
系统CPU usage及System memory采集开关。可选on或off,默认值为off。 |
否 |
--sys-sampling-freq |
系统CPU usage及System memory采集频率,范围[1,10],默认值为10,单位hz。 设置该参数需要sys-profiling参数设置为on。 |
否 |
--sys-pid-profiling |
所有进程的CPU usage及所有进程的memory采集开关。可选on或off,默认值为off。 |
否 |
--sys-pid-sampling-freq |
所有进程的CPU usage及所有进程的memory采集频率,范围[1,10],默认值为10,单位hz。 设置该参数需要sys-pid-profiling参数设置为on。 |
否 |
--sys-io-profiling |
NIC、ROCE采集开关。可选on或off,默认值为off。 仅Atlas 200/300/500 推理产品、Atlas 训练系列产品、Atlas A2训练系列产品支持NIC开关;仅Atlas 训练系列产品、Atlas A2训练系列产品支持ROCE开关。 |
否 |
--sys-io-sampling-freq |
NIC、ROCE采集频率,范围[1,100],默认值为100,单位hz。 设置该参数需要sys-io-profiling参数设置为on。 |
否 |
--sys-interconnection-profiling |
集合通信带宽数据(HCCS)、PCIe数据采集开关、片间传输带宽信息采集开关。可选on或off,默认值为off。 仅Atlas 训练系列产品、Atlas A2训练系列产品支持HCCS开关;仅Atlas 推理系列产品、Atlas 训练系列产品、Atlas A2训练系列产品支持PCIe开关;仅Atlas A2训练系列产品支持片间传输带宽信息采集开关。 |
否 |
--sys-interconnection-freq |
集合通信带宽数据(HCCS)、PCIe数据采集频率、片间传输带宽信息采集频率,范围[1,50],默认值为50,单位hz。 设置该参数需要sys-interconnection-profiling参数设置为on。 |
否 |
--dvpp-profiling |
DVPP采集开关,可选on或off,默认值为off。 |
否 |
--dvpp-freq |
DVPP采集频率,范围[1,100],默认值为50,单位hz。 设置该参数需要dvpp-profiling参数设置为on。 |
否 |
--instr-profiling |
采集AI Core和AI Vector的带宽和延时开关,可选on或off,默认值为off。 说明:
仅Atlas A2训练系列产品单算子场景支持。 |
否 |
--instr-profiling-freq |
AI Core和AI Vector的带宽和延时采集频率,范围[300,30000],默认值为1000,单位cycle。 设置该参数需要instr-profiling参数设置为on。 |
否 |
配置采集昇腾AI处理器系统数据参数后生成的性能数据如表2和表3所示。
timeline文件名 |
相关参数 |
说明 |
---|---|---|
msprof*.json |
所有可生成数据的参数均会在此文件写入数据。 |
timeline数据总表。对采集到的timeline性能数据按照迭代粒度进行性能展示。详情请参见timeline数据总表。 |
ai_core_utilization_*.json |
--ai-core --aic-metrics --aic-mode=sample-based |
每个Core上指令占比数据。详情请参见每个Core上指令占比数据。仅Atlas 200/300/500 推理产品、Atlas 推理系列产品、Atlas 训练系列产品支持。 |
ddr_*.json |
--sys-hardware-mem |
片上内存读写速率。详情请参见片上内存读写速率数据。仅Atlas 200/300/500 推理产品、Atlas 推理系列产品、Atlas 训练系列产品支持。 |
hbm_*.json |
--sys-hardware-mem |
片上内存读写速率。文件详情请参见片上内存读写速率数据。仅Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
llc_aicpu_*.json |
--sys-hardware-mem --llc-profiling=capacity |
AI CPU的三级缓存使用量,LLC Profiling采集事件设置为capacity时才会导出该文件。文件详情请参见AI CPU的三级缓存使用量数据。仅Atlas 200/300/500 推理产品支持。 |
llc_ctrlcpu_*.json |
--sys-hardware-mem --llc-profiling=capacity |
Control CPU三级缓存使用量,LLC Profiling采集事件设置为capacity时才会导出该文件。文件详情请参见Control CPU三级缓存使用量数据。仅Atlas 200/300/500 推理产品支持。 |
llc_bandwidth_*.json |
--sys-hardware-mem --llc-profiling=bandwidth |
三级缓存带宽,LLC Profiling采集事件设置为bandwidth时才会导出该文件。文件详情请参见三级缓存带宽数据。仅Atlas 200/300/500 推理产品支持。 |
llc_read_write_*.json |
--sys-hardware-mem |
三级缓存读写速率数据。文件详情请参见三级缓存读写速率数据。仅Atlas 推理系列产品、Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
acc_pmu_*.json |
--sys-hardware-mem |
加速器带宽及并发数据。文件详情请参见加速器带宽及并发数据。仅Atlas A2训练系列产品支持。 |
stars_soc_*.json |
--sys-hardware-mem |
SOC传输带宽信息。文件详情请参见SOC传输带宽信息数据。仅Atlas A2训练系列产品支持。 |
npu_mem_*.json |
--sys-hardware-mem |
NPU内存占用信息。文件详情请参见NPU内存占用数据。 |
nic_*.json |
--sys-io-profiling |
每个时间节点网络信息数据。文件详情请参见每个时间节点网络信息数据。仅Atlas 200/300/500 推理产品、Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
roce_*.json |
--sys-io-profiling |
RoCE通信接口带宽数据。文件详情请参见RoCE通信接口带宽数据。仅Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
hccs_*.json |
--sys-interconnection-profiling |
集合通信带宽数据。文件详情请参见集合通信带宽数据。仅Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
pcie_*.json |
--sys-interconnection-profiling |
PCIe带宽。文件详情请参见PCIe带宽数据。仅Atlas 推理系列产品、Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
stars_chip_trans_*.json |
--sys-interconnection-profiling |
片间传输带宽信息。文件详情请参见片间传输带宽信息数据。仅Atlas A2训练系列产品支持。 |
instr_*.json |
--instr-profiling |
AI Core和AI Vector的带宽和延时数据。文件详情请参见AI Core和AI Vector的带宽和延时数据。仅Atlas A2训练系列产品支持。 |
注:“*”表示{device_id}_{model_id}_{iter_id},其中{device_id}表示设备ID,{model_id}表示模型ID,{iter_id}表示某轮迭代的ID。 |
summary文件名 |
相关参数 |
说明 |
---|---|---|
ai_core_utilization_*.csv |
--ai-core --aic-metrics --aic-mode=sample-based |
每个Core上指令占比数据。详情请参见每个Core上指令占比数据。仅Atlas 200/300/500 推理产品、Atlas 推理系列产品、Atlas 训练系列产品支持。 |
ddr_*.csv |
--sys-hardware-mem |
片上内存读写速率。详情请参见片上内存读写速率数据。仅Atlas 200/300/500 推理产品、Atlas 推理系列产品、Atlas 训练系列产品支持。 |
hbm_*.csv |
--sys-hardware-mem |
片上内存读写速率。详情请参见片上内存读写速率数据。仅Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
llc_aicpu_*.csv |
--sys-hardware-mem --llc-profiling=capacity |
AI CPU三级缓存使用量,LLC Profiling采集事件设置为capacity时才会导出该文件。详情请参见AI CPU三级缓存使用量数据。仅Atlas 200/300/500 推理产品支持。 |
llc_ctrlcpu_*.csv |
--sys-hardware-mem --llc-profiling=capacity |
Control CPU三级缓存使用量,LLC Profiling采集事件设置为capacity时才会导出该文件。详情请参见Ctrl CPU三级缓存使用量数据。仅Atlas 200/300/500 推理产品支持。 |
llc_bandwidth_*.csv |
--sys-hardware-mem --llc-profiling=bandwidth |
三级缓存带宽,LLC Profiling采集事件设置为bandwidth时才会导出该文件。三级缓存带宽数据。仅Atlas 200/300/500 推理产品支持。 |
llc_read_write_*.csv |
--sys-hardware-mem |
三级缓存读写速率数据。文件详情请参见三级缓存读写速率数据。仅Atlas 推理系列产品、Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
npu_mem_*.csv |
--sys-hardware-mem |
NPU内存占用信息。文件详情请参见NPU内存占用数据。 |
ai_cpu_top_function_*.csv |
--sys-cpu-profiling |
AI CPU热点函数。文件详情请参见AI CPU热点函数数据。 |
ai_cpu_pmu_events_*.csv |
--sys-cpu-profiling |
AI CPU PMU事件。文件详情请参见AI CPU PMU事件数据。 |
ctrl_cpu_top_function_*.csv |
--sys-cpu-profiling |
Ctrl CPU热点函数。文件详情请参见Ctrl CPU热点函数数据。 |
ctrl_cpu_pmu_events_*.csv |
--sys-cpu-profiling |
Ctrl CPU PMU事件。文件详情请参见Ctrl CPU PMU事件数据。 |
ts_cpu_top_function_*.csv |
--sys-cpu-profiling |
TS CPU热点函数。文件详情请参见TS CPU热点函数数据。 |
ts_cpu_pmu_events_*.csv |
--sys-cpu-profiling |
TS CPU PMU事件。文件详情请参见TS CPU PMU事件数据。 |
cpu_usage_*.csv |
--sys-profiling |
AI CPU、Control CPU利用率。文件详情请参见AI CPU、Ctrl CPU利用率数据。 |
sys_mem_*.csv |
--sys-profiling |
指定device的内存使用情况。详情请参见系统内存数据。 |
process_cpu_usage_*.csv |
--sys-pid-profiling |
进程CPU占用率。生成文件详情请参见进程CPU占用率数据。 |
process_mem_*.csv |
--sys-pid-profiling |
进程内存占用率。文件详情请参见进程内存占用率数据。 |
nic_*.csv |
--sys-io-profiling |
每个时间节点网络信息数据。文件详情请参见每个时间节点网络信息数据。仅Atlas 200/300/500 推理产品、Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
roce_*.csv |
--sys-io-profiling |
RoCE通信接口带宽数据。文件详情请参见RoCE通信接口带宽数据。仅Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
hccs_*.csv |
--sys-interconnection-profiling |
集合通信带宽数据。文件详情请参见集合通信带宽数据。仅Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
pcie_*.csv |
--sys-interconnection-profiling |
PCIe带宽。详情请参见PCIe带宽数据。仅Atlas 推理系列产品、Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
dvpp_*.csv |
--dvpp-profiling |
DVPP数据。文件详情请参见DVPP数据。仅Atlas 200/300/500 推理产品、Atlas 训练系列产品、Atlas A2训练系列产品支持。 |
注:“*”表示{device_id}_{model_id}_{iter_id},其中{device_id}表示设备ID,{model_id}表示模型ID,{iter_id}表示某轮迭代的ID。 |