下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

AI Core/AI Vector Core性能指标采集项说明

下发Profiling性能采集,采集类型不同时,Metrics展示的结果数据呈现有所不同。本处以task-based展示结果为例,说明数据含义。

  • task-based:以task为粒度进行性能数据采集。展示的数据以cycle数统计占比。
  • sample-based:以固定的时间周期进行性能数据采集。展示的数据以时间统计占比。

AI Core Metrics采集的事件详细描述如下:

  • ArithmeticUtilization
    • 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数中的占用比。
    • cube_fops:代表cube类型的浮点运算数,即计算量,可用于衡量算法/模型的复杂度,其中fops表示floating point operations,缩写为FLOPs。
    • vector_fops:代表vector类型浮点运算数,即计算量,可用于衡量算法/模型的复杂度,其中fops表示floating point operations,缩写为FLOPs。
  • PipeUtilization
    • 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瓶颈,且数值越大越瓶颈严重。

    sample-based不生成vec_time、mac_time、scalar_time、mte1_time、mte2_time和mte3_time字段信息。

  • Memory
    • ub_read_bw:代表ub读带宽速率,单位GB/s。
    • ub_write_bw:代表ub写带宽速率,单位GB/s。
    • l1_read_bw:代表l1读带宽速率,单位GB/s。
    • l1_write_bw:代表l1写带宽速率,单位GB/s。
    • main_mem_read_bw:代表主存储器读带宽速率,单位GB/s。
    • main_mem_write_bw:代表主存储器写带宽速率,单位GB/s。
  • MemoryL0
    • 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:代表vector从l0c读带宽速率,单位GB/s。
    • l0c_write_bw:代表vector向l0c写带宽速率,单位GB/s。
    • l0c_read_bw_cube:代表cube从l0c读带宽速率,单位GB/s。
    • l0c_write_bw_cube:代表cube向l0c写带宽速率,单位GB/s。
  • MemoryUB
    • ub_read_bw_mte:代表mte从ub读带宽速率,单位GB/s。
    • ub_write_bw_mte:代表mte向ub写带宽速率,单位GB/s。
    • ub_read_bw_vector:代表vector从ub读带宽速率,单位GB/s。
    • ub_write_bw_vector:代表vector向ub写带宽速率,单位GB/s。
    • ub_read_bw_scalar:代表scalar从ub读带宽速率,单位GB/s。
    • ub_write_bw_scalar:代表scalar向ub写带宽速率,单位GB/s。
  • ResourceConflictRatio
    • 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数中占比。
  • L2Cache
    • write_cache_hit:写cache命中的次数。
    • write_cache_miss_allocate:写cache缺失后重新分配缓存的次数。
    • r*_read_cache_hit:读r*通道cache命中次数。
    • r*_read_cache_miss_allocate:读r*通道cache缺失后重新分配的次数。
  • PipelineExecuteUtilization
    • vec_exe_time:代表vec类型指令(向量类运算指令)耗时。
    • vec_exe_ratio:代表vec类型指令(向量类运算指令)的cycle数在所有指令的cycle数中的占用比。
    • mac_exe_time:代表cube类型指令(fp16及s16矩阵类运算指令)耗时。
    • mac_exe_ratio:代表cube类型指令(fp16及s16矩阵类运算指令)的cycle数在所有指令的cycle数中的占用比。
    • scalar_exe_time:代表scalar类型指令(标量类运算指令)耗时。
    • scalar_exe_ratio:代表scalar类型指令(标量类运算指令)的cycle数在所有指令的cycle数中的占用比。
    • mte1_exe_time:代表mte1类型指令(L1->L0A/L0B搬运类指令)耗时。
    • mte1_exe_ratio:代表mte1类型指令(L1->L0A/L0B搬运类指令)的cycle数在所有指令的cycle数中的占用比。
    • mte2_exe_time:代表mte2类型指令(DDR->AICORE搬运类指令)耗时。
    • mte2_exe_ratio:代表mte2类型指令(DDR->AICORE搬运类指令)的cycle数在所有指令的cycle数中的占用比。
    • mte3_exe_time:代表mte3类型指令(AICORE->DDR搬运类指令)耗时。
    • mte3_exe_ratio:代表mte3类型指令(AICORE->DDR搬运类指令)的cycle数在所有指令的cycle数中的占用比。
    • fixpipe_exe_time:代表fixpipe类型指令(L0C->OUT/L1搬运类指令)耗时。
    • fixpipe_exe_ratio:代表fixpipe类型指令(L0C->OUT/L1搬运类指令)的cycle数在所有指令的cycle数中的占用比。
    • memory_bound:用于识别AICore执行算子计算过程是否存在Memory瓶颈,由mte2_exe_ratio/max(mac_exe_ratio, vec_exe_ratio)计算得出。计算结果小于1,表示没有Memory瓶颈;计算结果大于1 则表示有Memory瓶颈,且数值越大越瓶颈严重。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词