ResourceConflictRatio (Resource Conflict Ratio)

The data of ratios of bank groups, bank conflicts, and resource conflicts in the UB to all instructions is saved in ResourceConflictRatio.csv. You are advised to reduce read/write conflicts on the same bank or read/read conflicts on a bank group.

A bank group is a group of banks in the UB. Each bank group contains multiple banks. A bank conflict refers to the competition between multiple threads that access the same bank at the same time in the UB.

For details, see the field description in the following table.

Figure 1 ResourceConflictRatio.csv file
See the following table for more details.
Table 1 Field description

Field

Description

block_id

Number of running task blocks, which corresponds to the number of cores configured during task running.

sub_block_id

Name and sequence number of each block used for task running.

aic_time(us)

Execution time (μs) on each AI Cube Core compute unit after the task is allocated to each AI Cube Core compute unit.

aic_total_cycles

Total number of cycles executed on each AI Cube Core compute unit after the task is allocated to each AI Cube Core compute unit.

aiv_time(us)

Execution time of each AI Vector Core compute unit after the task is allocated to the unit, in μs.

aiv_total_cycles

Total number of cycles executed on each AI Vector Core compute unit after the task is allocated to the unit.

aic_cube_wait_ratio

Ratio of cycles in which Cube units are blocked to the total cycles of instructions.

aiv_vec_total_cflt_ratio

Ratio of cycles in which Vector instructions are blocked to the total cycles of instructions.

aiv_vec_bankgroup_cflt_ratio

Ratio of cycles in which Vector instructions are blocked by bankgroup conflicts to the total cycles of instructions. The bankgroup conflicts arise because the block stride of Vector instructions is improperly set.

aiv_vec_bank_cflt_ratio

Ratio of cycles in which Vector instructions are blocked by bank conflicts to the total cycles of instructions. The bank conflicts arise because the read/write pointer address of the Vector instruction operand is improper.

aiv_vec_resc_cflt_ratio

Ratio of cycles in which Vector instructions are blocked by execution unit resource conflicts to the total cycles of instructions. If an operator involves multiple compute units, ensure that they are concurrently scheduled. When a compute unit is working, but the operator logic still delivers instructions to it, the overall computing power is not fully utilized.

aiv_vec_mte_cflt_ratio

Ratio of cycles in which Vector instructions are blocked by MTE conflicts to the total cycles of instructions.

aiv_vec_wait_ratio

Ratio of cycles in which Vector units are blocked to the total cycles of instructions.

ai*_mte1_wait_ratio

Ratio of cycles in which MTE1 is blocked to the total cycles of instructions.

ai*_mte2_wait_ratio

Ratio of cycles in which MTE2 is blocked to the total cycles of instructions.

ai*_mte3_wait_ratio

Ratio of cycles in which MTE3 is blocked to the total cycles of instructions.

Figure 2 ResourceConflictRatio.csv file
See the following table for more details.
Table 2 Field description

Field

Description

aic_time(us)

Execution time of each AI Core compute unit after the task is allocated to the unit, in μs.

aic_total_cycles

Total number of cycles executed on each AI Core compute unit after the task is allocated to the unit.

aic_cube_wait_ratio

aic_cube_wait_ratio: ratio of cycles in which Cube units are blocked to the total cycles of instructions.

aic_vec_total_cflt_ratio

Ratio of cycles in which Vector instructions are blocked to the total cycles of instructions.

aic_vec_bankgroup_cflt_ratio

Ratio of cycles in which Vector instructions are blocked by bankgroup conflicts to the total cycles of instructions. The bankgroup conflicts arise because the block stride of Vector instructions is improperly set.

aic_vec_bank_cflt_ratio

Ratio of cycles in which Vector instructions are blocked by bank conflicts to the total cycles of instructions. The bank conflicts arise because the read/write pointer address of the Vector instruction operand is improper.

aic_vec_resc_cflt_ratio

Ratio of cycles in which Vector instructions are blocked by execution unit resource conflicts to the total cycles of instructions. If an operator involves multiple compute units, ensure that they are concurrently scheduled. When a compute unit is working, but the operator logic still delivers instructions to it, the overall computing power is not fully utilized.

aic_vec_mte_cflt_ratio

Ratio of cycles in which Vector instructions are blocked by MTE conflicts to the total cycles of instructions.

aic_vec_wait_ratio

Ratio of cycles in which Vector units are blocked to the total cycles of instructions.

aic_mte1_wait_ratio

Ratio of cycles in which MTE1 is blocked to the total cycles of instructions.

aic_mte2_wait_ratio

Ratio of cycles in which MTE2 is blocked to the total cycles of instructions.

aic_mte3_wait_ratio

Ratio of cycles in which MTE3 is blocked to the total cycles of instructions.