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