AI Core/AI Vector Core性能指标采集项说明
Atlas A2训练系列产品/Atlas 800I A2推理产品
AI Core和AI Vector Core Metrics采集的事件详细描述如下:
- ArithmeticUtilization
- aic_cube_ ratio:代表cube 单元指令的cycle数在total cycle数中的占用比。
- aic_cube_fp16_ratio:代表cube fp16类型指令的cycle数在total cycle数中的占用比。
- aic_cube_int8_ratio:代表cube int8类型指令的cycle数在total cycle数中的占用比。
- aic_cube_fops:代表cube类型的浮点运算数,即计算量,可用于衡量算法/模型的复杂度,其中fops表示floating point operations。
- aic_cube_total_instr_number:代表cube指令的总条数,包括fp和int类型。
- aic_cube_fp_instr_number:代表cube fp类型指令的总条数。
- aic_cube_int_instr_number:代表cube int类型指令的总条数。
- aiv_vec_ratio:代表vec单元指令的cycle数在total cycle数中的占用比。
- aiv_vec_fp32_ratio:代表vec fp32类型指令的cycle数在total cycle数中的占用比。
- aiv_vec_fp16_ratio:代表vec fp16类型指令的cycle数在total cycle数中的占用比。
- aiv_vec_int32_ratio:代表vec int32类型指令的cycle数在total cycle数中的占用比。
- aiv_vec_ int16_ratio:代表vec int16类型指令的cycle数在total cycle数中的占用比。
- aiv_vec_misc_ratio:代表vec misc类型指令的cycle数在total cycle数中的占用比。
- aiv_vec_fops:代表vector类型浮点运算数,即计算量,可用于衡量算法/模型的复杂度,其中fops表示floating point operations。
- PipeUtilization
- aiv_vec_time(us):代表vec类型指令(向量类运算指令)耗时。
- aiv_vec_ratio:代表vec类型指令(向量类运算指令)的cycle数在total cycle数中的占用比。
- aic_cube_time(us):代表cube类型指令(fp16及s16矩阵类运算指令)耗时。
- aic_cube_ratio:代表cube类型指令(fp16及s16矩阵类运算指令)的cycle数在total cycle数中的占用比。
- ai*_scalar_time(us):代表scalar类型指令(标量类运算指令)耗时。
- ai*_scalar_ratio:代表scalar类型指令(标量类运算指令)的cycle数在total cycle数中的占用比。
- aic_fixpipe_time(us):代表fixpipe类型指令(L0C->GM/L1搬运类指令)耗时。
- aic_fixpipe_ratio:代表fixpipe类型指令(L0C->GM/L1搬运类指令)的cycle数在total cycle数中的占用比。
- aic_mte1_time(us):代表mte1类型指令(L1->L0A/L0B搬运类指令)耗时,不包括搬运等待时间。
- aic_mte1_ratio:代表mte1类型指令(L1->L0A/L0B搬运类指令)的cycle数在total cycle数中的占用比。
- ai*_mte2_time(us):代表mte2类型指令(GM->AICORE搬运类指令)耗时。
- ai*_mte2_ratio:代表mte2类型指令(GM->AICORE搬运类指令)的cycle数在total cycle数中的占用比。
- ai*_mte3_time(us):代表mte3类型指令(AICORE->GM搬运类指令)耗时。
- ai*_mte3_ratio:代表mte3类型指令(AICORE->GM搬运类指令)的cycle数在total cycle数中的占用比。
- ai*_icache_miss_rate:代表icache缺失率,即未命中instruction的L1 cache,数值越小越好。
- ResourceConflictRatio
- aic_cube_wait_ratio:代表cube单元被阻塞的cycle数在所有指令执行cycle数中占比。
- aiv_vec_total_cflt_ratio:代表所有vector执行的指令被阻塞的cycle数在所有指令执行cycle数中占比。
- aiv_vec_bankgroup_cflt_ratio:代表vector执行的指令被bankgroup冲突阻塞的cycle数在所有指令执行cycle数中占比。由于vector指令的block stride的值设置不合理,造成bankgroup冲突。
- aiv_vec_bank_cflt_ratio:代表vector执行的指令被bank冲突阻塞的cycle数在所有指令执行cycle数中占比。由于vector指令操作数的读写指针地址不合理,造成bank冲突。
- aiv_vec_resc_cflt_ratio:代表vector执行的指令被执行单元资源冲突阻塞的cycle数在所有指令执行cycle数中占比。当算子中涉及多个计算单元,应该尽量保证多个单元并发调度。当某个计算单元正在运行,但算子逻辑仍然往该单元下发指令,就会造成整体的算力没有得到充分应用。
- aiv_vec_mte_cflt_ratio:代表vector执行的指令被mte冲突阻塞的cycle数在所有指令执行cycle数中占比。
- aiv_vec_wait_ratio:代表vector单元被阻塞的cycle数在所有指令执行cycle数中占比。
- ai*_mte1_wait_ratio:代表mte1被阻塞的cycle数在所有指令执行cycle数中占比。
- ai*_mte2_wait_ratio:代表mte2被阻塞的cycle数在所有指令执行cycle数中占比。
- ai*_mte3_wait_ratio:代表mte3被阻塞的cycle数在所有指令执行cycle数中占比。
- Memory
- aiv_ub_to_gm_bw(GB/s):代表ub向gm写入的带宽速率,单位GB/s。
- aiv_gm_to_ub_bw(GB/s):代表gm向ub写入的带宽速率,单位GB/s。
- aic_l1_read_bw(GB/s):代表l1读带宽速率,单位GB/s。
- aic_l1_write_bw(GB/s):代表l1写带宽速率,单位GB/s。
- ai*_main_mem_read_bw(GB/s):代表主存储器读带宽速率,单位GB/s。
- ai*_main_mem_write_bw(GB/s):代表主存储器写带宽速率,单位GB/s。
- aic_mte1_instructions:代表mte1类型指令条数。
- aic_mte1_ratio:代表mte1类型指令的cycle数在total cycle数中的占用比。
- ai*_mte2_instructions:代表mte2类型指令条数。
- ai*_mte2_ratio:代表mte2类型指令的cycle数在total cycle数中的占用比。
- ai*_mte3_instructions:代表mte3类型指令条数。
- ai*_mte3_ratio:代表mte3类型指令的cycle数在total cycle数中的占用比。
- read_main_memory_datas(KB):读主存储器数据总量。
- write_main_memory_datas(KB) :写主存储器数据总量。
- GM_to_L1_datas(KB):GM到L1的数据搬运量。
- L1_to_GM_datas(KB)(estimate):L1到GM的数据搬运量,估算值。
- L0C_to_L1_datas(KB):L0C到L1的数据搬运量。
- L0C_to_GM_datas(KB) :L0C到GM的数据搬运量。
- GM_to_UB_datas(KB):GM到UB的数据搬运量。
- UB_to_GM_datas(KB) :UB到GM的数据搬运量。
- GM_to_L1_bw_usage_rate(%):GM到L1通路带宽使用率。
- L1_to_GM_bw_usage_rate(%)(estimate):L1到GM通路带宽使用率,估算值。
- L0C_to_L1_bw_usage_rate(%):L0C到L1通路带宽使用率。
- L0C_to_GM_bw_usage_rate(%):L0C到GM通路带宽使用率。
- GM_to_UB_bw_usage_rate(%):GM到UB通路带宽使用率。
- UB_to_GM_bw_usage_rate(%):UB到GM通路带宽使用率。
- MemoryL0
- aic_l0a_read_bw(GB/s):代表l0a读带宽速率,单位GB/s。
- aic_l0a_write_bw(GB/s):代表l0a写带宽速率,单位GB/s。
- aic_l0b_read_bw(GB/s):代表l0b读带宽速率,单位GB/s。
- aic_l0b_write_bw(GB/s):代表l0b写带宽速率,单位GB/s。
- aic_l0c_read_bw_cube(GB/s):代表cube从l0c读带宽速率,单位GB/s。
- aic_l0c_write_bw_cube(GB/s):代表cube向l0c写带宽速率,单位GB/s。
- MemoryUB
- aiv_ub_read_bw_vector(GB/s):代表vector从ub读带宽速率,单位GB/s。
- aiv_ub_write_bw_vector(GB/s):代表vector向ub写带宽速率,单位GB/s。
- aiv_ub_read_bw_scalar(GB/s):代表scalar从ub读带宽速率,单位GB/s。
- aiv_ub_write_bw_scalar(GB/s):代表scalar向ub写带宽速率,单位GB/s。
- L2Cache
- ai*_write_cache_hit:写cache命中的次数。
- ai*_write_cache_miss_allocate:写cache缺失后重新分配缓存的次数。
- ai*_r*_read_cache_hit:读r*通道cache命中次数。
- ai*_r*_read_cache_miss_allocate:读r*通道cache缺失后重新分配的次数。
- ai*_write_hit_rate(%):写cache命中率。
- ai*_read_hit_rate(%):读cache命中率。
- ai*_total_hit_rate(%):读/写cache命中率。
Atlas 推理系列产品
AI Core Metrics采集的事件详细描述如下:
- ArithmeticUtilization
- aic_cube_ ratio:代表cube 单元指令的cycle数在total cycle数中的占用比。
- aic_cube_fp16_ratio:代表cube fp16类型指令的cycle数在total cycle数中的占用比。
- aic_cube_int8_ratio:代表cube int8类型指令的cycle数在total cycle数中的占用比。
- aic_cube_fops:代表cube类型的浮点运算数,即计算量,可用于衡量算法/模型的复杂度,其中fops表示floating point operations。
- aic_cube_total_instr_number:代表cube指令的总条数,包括fp和int类型。
- aic_vec_ratio:代表vec单元指令的cycle数在total cycle数中的占用比。
- aic_vec_fp32_ratio:代表vec fp32类型指令的cycle数在total cycle数中的占用比。
- aic_vec_fp16_ratio:代表vec fp16类型指令的cycle数在total cycle数中的占用比。
- aic_vec_int32_ratio:代表vec int32类型指令的cycle数在total cycle数中的占用比。
- aic_vec_ int16_ratio:代表vec int16类型指令的cycle数在total cycle数中的占用比。
- aic_vec_misc_ratio:代表vec misc类型指令的cycle数在total cycle数中的占用比。
- aic_vec_fops:代表vector类型浮点运算数,即计算量,可用于衡量算法/模型的复杂度,其中fops表示floating point operations。
- ResourceConflictRatio
- aic_cube_wait_ratio:代表cube单元被阻塞的cycle数在所有指令执行cycle数中占比。
- aic_vec_total_cflt_ratio:代表所有vector执行的指令被阻塞的cycle数在所有指令执行cycle数中占比。
- aic_vec_bankgroup_cflt_ratio:代表vector执行的指令被bankgroup冲突阻塞的cycle数在所有指令执行cycle数中占比。由于vector指令的block stride的值设置不合理,造成bankgroup冲突。
- aic_vec_bank_cflt_ratio:代表vector执行的指令被bank冲突阻塞的cycle数在所有指令执行cycle数中占比。由于vector指令操作数的读写指针地址不合理,造成bank冲突。
- aic_vec_resc_cflt_ratio:代表vector执行的指令被执行单元资源冲突阻塞的cycle数在所有指令执行cycle数中占比。当算子中涉及多个计算单元,应该尽量保证多个单元并发调度。当某个计算单元正在运行,但算子逻辑仍然往该单元下发指令,就会造成整体的算力没有得到充分应用。
- aic_vec_mte_cflt_ratio:代表vector执行的指令被mte冲突阻塞的cycle数在所有指令执行cycle数中占比。
- aic_vec_wait_ratio:代表vector单元被阻塞的cycle数在所有指令执行cycle数中占比。
- aic_mte1_wait_ratio:代表mte1被阻塞的cycle数在所有指令执行cycle数中占比。
- aic_mte2_wait_ratio:代表mte2被阻塞的cycle数在所有指令执行cycle数中占比。
- aic_mte3_wait_ratio:代表mte3被阻塞的cycle数在所有指令执行cycle数中占比。
- PipeUtilization
- aic_cube_time(us):代表cube类型指令(fp16及s16矩阵类运算指令)耗时。
- aic_cube_ratio:代表cube类型指令(fp16及s16矩阵类运算指令)的cycle数在total cycle数中的占用比。
- aic_scalar_time(us):代表scalar类型指令(标量类运算指令)耗时。
- aic_scalar_ratio:代表scalar类型指令(标量类运算指令)的cycle数在total cycle数中的占用比。
- aic_mte1_time(us):代表mte1类型指令(L1->L0A/L0B搬运类指令)耗时,不包括搬运等待时间。
- aic_mte1_ratio:代表mte1类型指令(L1->L0A/L0B搬运类指令)的cycle数在total cycle数中的占用比。
- aic_mte2_time(us):代表mte2类型指令(GM->AICORE搬运类指令)耗时。
- aic_mte2_ratio:代表mte2类型指令(GM->AICORE搬运类指令)的cycle数在total cycle数中的占用比。
- aic_mte3_time(us):代表mte3类型指令(AICORE->GM搬运类指令)耗时。
- aic_mte3_ratio:代表mte3类型指令(AICORE->GM搬运类指令)的cycle数在total cycle数中的占用比。
- aic_icache_miss_rate:代表icache缺失率,即未命中instruction的L1 cache,数值越小越好。
- aic_vec_time(us):代表vec类型指令(向量类运算指令)耗时。
- aic_vec_ratio:代表vec类型指令(向量类运算指令)的cycle数在total cycle数中的占用比。
- Memory
- aic_ub_to_gm_bw(GB/s):代表ub向gm写入的带宽速率,单位GB/s。
- aic_gm_to_ub_bw(GB/s):代表gm向ub写入的带宽速率,单位GB/s。
- aic_l1_read_bw(GB/s):代表l1读带宽速率,单位GB/s。
- aic_l1_write_bw(GB/s):代表l1写带宽速率,单位GB/s。
- aic_main_mem_read_bw(GB/s):代表主存储器读带宽速率,单位GB/s。
- aic_main_mem_write_bw(GB/s):代表主存储器写带宽速率,单位GB/s。
- aic_mte1_instructions:代表mte1类型指令条数。
- aic_mte1_ratio:代表mte1类型指令的cycle数在total cycle数中的占用比。
- aic_mte2_instructions:代表mte2类型指令条数。
- aic_mte2_ratio:代表mte2类型指令的cycle数在total cycle数中的占用比。
- aic_mte3_instructions:代表mte3类型指令条数。
- aic_mte3_ratio:代表mte3类型指令的cycle数在total cycle数中的占用比。
- MemoryL0
- aic_l0a_read_bw(GB/s):代表l0a读带宽速率,单位GB/s。
- aic_l0a_write_bw(GB/s):代表l0a写带宽速率,单位GB/s。
- aic_l0b_read_bw(GB/s):代表l0b读带宽速率,单位GB/s。
- aic_l0b_write_bw(GB/s):代表l0b写带宽速率,单位GB/s。
- aic_l0c_read_bw_cube(GB/s):代表cube从l0c读带宽速率,单位GB/s。
- aic_l0c_write_bw_cube(GB/s):代表cube向l0c写带宽速率,单位GB/s。
- aic_l0c_read_bw(GB/s):代表vector从l0c读带宽速率,单位GB/s。
- aic_l0c_write_bw(GB/s):代表vector向l0c写带宽速率,单位GB/s。
- MemoryUB
- aic_ub_read_bw_vector(GB/s):代表vector从ub读带宽速率,单位GB/s。
- aic_ub_write_bw_vector(GB/s):代表vector向ub写带宽速率,单位GB/s。
- aic_ub_read_bw_scalar(GB/s):代表scalar从ub读带宽速率,单位GB/s。
- aic_ub_write_bw_scalar(GB/s):代表scalar向ub写带宽速率,单位GB/s。
父主题: msprof op