AI Core性能指标采集项说明
下发Profiling性能采集,AI Core采集类型ai_core_profiling_mode取值不同时,AI Core Metrics展示的结果数据呈现有所不同。本处以task-based展示结果为例,说明数据含义。
- task-based:以task为粒度进行性能数据采集。展示的数据以cycle数统计占比。
- sample-based:以固定的时间周期进行性能数据采集。展示的数据以时间统计占比。
AI Core Metrics采集的事件详细描述如下:
- aicoreArithmeticThroughput
- mac_fp16_ratio:代表cube fp16类型指令的cycle数在所有指令的cycle数中的占用比。
- mac_int8_ratio:代表cube int8类型指令的cycle数在所有指令的cycle数中的占用比。
- vec_fp32_ratio:代表vec fp32类型指令的cycle数在所有指令的cycle数中的占用比。
- vec_fp16_ratio:代表vec fp16类型指令的cycle数在所有指令的cycle数中的占用比。
- vec_int32_ratio:代表vec int32类型指令的cycle数在所有指令的cycle数中的占用比。
- vec_misc_ratio:代表vec misc类型指令的cycle数在所有指令的cycle数中的占用比。
- aicorePipeline
- vec_time:代表vec类型指令(向量类运算指令)耗时。
- vec_ratio:代表vec类型指令(向量类运算指令)的cycle数在所有指令的cycle数中的占用比。
- mac_time:代表cube类型指令(矩阵类运算指令)耗时。
- mac_ratio:代表cube类型指令(矩阵类运算指令)的cycle数在所有指令的cycle数中的占用比。
- scalar_time:代表scalar类型指令(标量类运算指令)耗时。
- scalar_ratio:代表scalar类型指令(标量类运算指令)的cycle数在所有指令的cycle数中的占用比。
- mte1_time:代表mte1类型指令(L1->L0A/L0B搬运类指令)耗时。
- mte1_ratio:代表mte1类型指令(L1->L0A/L0B搬运类指令)的cycle数在所有指令的cycle数中的占用比。
- mte2_time:代表mte2类型指令(DDR->AICORE搬运类指令)耗时。
- mte2_ratio:代表mte2类型指令(DDR->AICORE搬运类指令)的cycle数在所有指令的cycle数中的占用比。
- mte3_time:代表mte3类型指令(AICORE->DDR搬运类指令)耗时。
- mte3_ratio:代表mte3类型指令(AICORE->DDR搬运类指令)的cycle数在所有指令的cycle数中的占用比。
- icache_miss_rate:代表icache缺失率,即未命中icache,数值越小越好。
- memory_bound:用于识别AICore执行算子计算过程是否存在Memory瓶颈,由mte2_ratio/max(mac_ratio, vec_ratio)计算得出。计算结果小于1,表示没有Memory瓶颈;计算结果大于1 则表示有Memory瓶颈,且数值越大越瓶颈严重。
- aicoreSynchronization
- scalar_waitflag_ratio:代表scalar类型wait指令的cycle数在所有指令的cycle数中的占用比。
- cube_waitflag_ratio:代表cube类型wait指令的cycle数在所有指令的cycle数中的占用比。
- vector_waitflag_ratio:代表vector类型wait指令的cycle数在所有指令的cycle数中的占用比。
- mte1_waitflag_ratio:代表mte1类型wait指令的cycle数在所有指令的cycle数中的占用比。
- mte2_waitflag_ratio:代表mte2类型wait指令的cycle数在所有指令的cycle数中的占用比。
- mte3_waitflag_ratio:代表mte3类型wait指令的cycle数在所有指令的cycle数中的占用比。
- aicoreMemoryBandwidth
- ub_read_bw:代表ub读带宽速率,单位GB/s。
- ub_write_bw:代表ub写带宽速率,单位GB/s。
- l1_read_bw:代表l1读带宽速率,单位GB/s。
- l1_write_bw:代表l1写带宽速率,单位GB/s。
- l2_read_bw:代表l2读带宽速率,单位GB/s。
- l2_write_bw:代表l2写带宽速率,单位GB/s。
- main_mem_read_bw:代表主存储器读带宽速率,单位GB/s。
- main_mem_write_bw:代表主存储器写带宽速率,单位GB/s。
- aicoreInternalMemoryBandwidth
- scalar_ld_ratio:代表scalar access ub类型读指令的cycle数在所有指令的cycle数中的占用比。
- scalar_st_ratio:代表scalar access ub类型写指令的cycle数在所有指令的cycle数中的占用比。
- l0a_read_bw:代表l0a读带宽速率,单位GB/s。
- l0a_write_bw:代表l0a写带宽速率,单位GB/s。
- l0b_read_bw:代表l0b读带宽速率,单位GB/s。
- l0b_write_bw:代表l0b写带宽速率,单位GB/s。
- l0c_read_bw:代表l0c读带宽速率,单位GB/s。
- l0c_write_bw:代表l0c写带宽速率,单位GB/s。
- aicorePipelineStall
- vec_bankgroup_cflt_ratio:代表vec_bankgroup_stall_cycles类型指令执行cycle数在所有指令执行cycle数中占比。
- vec_bank_cflt_ratio:代表vec_bank_stall_cycles类型指令执行cycle数在所有指令执行cycle数中占比。
- vec_resc_cflt_ratio:代表vec_resc_cflt_ratio类型指令执行cycle数在所有指令执行cycle数中占比。
- mte1_iq_full_ratio:代表mte1_iq_full_cycles类型指令执行cycle数在所有指令执行cycle数中占比。
- mte2_iq_full_ratio:代表mte2_iq_full_cycles类型指令执行cycle数在所有指令执行cycle数中占比。
- mte3_iq_full_ratio:代表mte3_iq_full_cycles类型指令执行cycle数在所有指令执行cycle数中占比。
- cube_iq_full_ratio:代表cube_iq_full_cycles类型指令执行cycle数在所有指令执行cycle数中占比。
- vec_iq_full_ratio:代表vec_iq_full_ratio类型指令执行cycle数在所有指令执行cycle数中占比。
- iq_full_ratio:代表vec_resc_cflt_ratio,mte1_iq_full_ratio,mte2_iq_full_ratio,mte3_iq_full_ratio,cube_iq_full_ratio,vec_iq_full_ratio类型指令执行cycle数之和在所有指令执行cycle数中占比。