ResourceConflictRatio(资源冲突占比)
UB上的bank group、bank conflict和资源冲突在所有指令中的占比数据ResourceConflictRatio.csv,建议减少对于同一个bank的读写冲突或bank group的读读冲突。
bank group是指UB中的一组bank,每个bank group包含多个bank。bank conflict是指在UB中同时访问相同bank的多个线程之间的竞争。
详情介绍请参见下表中的字段说明。
       Atlas A2 训练系列产品/Atlas 800I A2 推理产品
       
     
    | 字段名 | 字段解释 | 
|---|---|
| block_id | Task运行切分数量,对应Task运行时配置的核数。 | 
| sub_block_id | Task运行使用的每个block名称和序号。 | 
| aic_time(us) | 该Task被分配到每个AI Cube Core计算单元上后,每个AI Cube Core计算单元上的执行时间,单位us。 | 
| aic_total_cycles | 该Task被分配到每个AI Cube Core计算单元上后,每个AI Cube Core计算单元上的执行的cycle总数。 | 
| aiv_time(us) | 该Task被分配到每个AI Vector Core计算单元上后,每个AI Vector Core计算单元上的执行时间,单位us。 | 
| aiv_total_cycles | 该Task被分配到每个AI Vector Core计算单元上后,每个AI Vector Core计算单元上的执行的cycle总数。 | 
| 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数中占比。 | 
        Atlas 推理系列产品
        
     
    | 字段名 | 字段解释 | 
|---|---|
| aic_time(us) | 该Task被分配到每个AI Core计算单元上后,每个AI Core计算单元上的执行时间,单位us。 | 
| aic_total_cycles | 该Task被分配到每个AI Core计算单元上后,每个AI Core计算单元上的执行的cycle总数。 | 
| 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数中占比。 |