---
title: ai_core_utilization（AI Core指令占比）
description: "AI Core指令占比数据timeline信息在msprof_*.json文件的AI Core Utilization层级展示，summary信息在ai_core_utilization_*.csv文件汇总。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/Profiling/atlasprofiling_16_0069.html
sourcePath: /source/zh/canncommercial/900/devaids/Profiling/atlasprofiling_16_0069.html
indexId: 2f5dd6e339051d56590793f76d45c1b60d9e1b357054622f5c675d0d2efa443e75
---
# ai_core_utilization（AI Core指令占比）

AI Core指令占比数据timeline信息在msprof_*.json文件的AI Core Utilization层级展示，summary信息在ai_core_utilization_*.csv文件汇总。

#### 产品支持情况

AI处理器与昇腾产品的对应关系，请参见《昇腾产品形态说明(https://www.hiascend.com/document/detail/zh/AscendFAQ/ProduTech/productform/hardwaredesc_0001.html)》


| AI处理器类型 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
| Atlas 350 加速卡 | √ |


#### msprof_*.json文件的AI Core指令占比数据说明

msprof_*.json文件内容格式示例如下：

图1 AI Core Utilization层


**表1 字段说明**

| 字段名 | 字段含义 |
| --- | --- |
| Average | 均值。 |
| Core <ID> | Core ID。 |
| utilization(%) | 当前采样周期内，AI Core在执行Task的total cycle（从AI Core开始执行算子的第一条指令开始计数，到最后一条指令执行完成）占比。 |


#### ai_core_utilization_*.csv文件说明

ai_core_utilization_*.csv文件内容格式示例如下：

图2 ai_core_utilization（仅为示例）

根据--aic-metrics参数取值不同，文件呈现结果不同。完整字段如下。

- 下文字段说明中，不同产品支持的字段略有不同，请以实际结果文件呈现字段为准。
- 下列字段均在--task-time=l1、--aic-mode=sample-based时生成，--task-time为l0时，不采集该字段，显示为N/A。生成的数据由aic_metrics参数取值控制。


**表2 字段说明（PipeUtilization）**

| 字段名 | 字段含义 |
| --- | --- |
| vec\_ratio | vec类型指令（向量类运算指令）的cycle数在total cycle数中的占用比。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 不支持该字段。 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 不支持该字段。 |
| mac\_ratio | cube类型指令（矩阵类运算指令）的cycle数在total cycle数中的占用比。 |
| scalar\_ratio | scalar类型指令（标量类运算指令）的cycle数在total cycle数中的占用比。 |
| mte1\_ratio | mte1类型指令（L1\->L0A/L0B搬运类指令）的cycle数在total cycle数中的占用比。 |
| mte2\_ratio | mte2类型指令（DDR\->AICORE搬运类指令）的cycle数在total cycle数中的占用比。 |
| mte3\_ratio | mte3类型指令（AICORE\->DDR搬运类指令）的cycle数在total cycle数中的占用比。 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 不支持该字段。 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 不支持该字段。 |
| icache\_miss\_rate | icache是为instruction预留的L2 Cache，icache\_miss\_rate数值高代表AI Core读取指令的效率低。 |
| fixpipe\_ratio | fixpipe类型指令（L0C\->OUT/L1搬运类指令）的cycle数在total cycle数中的占用比。 |
| memory\_bound | 用于识别AI Core执行算子计算过程是否存在Memory瓶颈，由mte2\_ratio/max(mac\_ratio, vec\_ratio)计算得出。计算结果小于1，表示没有Memory瓶颈；计算结果大于1则表示AI Core在执行Task过程中大部分时间都在做内存搬运而不是计算，且数值越大Memory瓶颈越严重。 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 不支持该字段。 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 不支持该字段。 |


**表3 字段说明（ArithmeticUtilization）**

| 字段名 | 字段含义 |
| --- | --- |
| mac\_fp16\_ratio | cube fp16类型指令的cycle数在total cycle数中的占用比。 |
| mac\_int8\_ratio | cube int8类型指令的cycle数在total cycle数中的占用比。 |
| vec\_fp32\_ratio | vec fp32类型指令的cycle数在total cycle数中的占用比。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。Atlas 350 加速卡不支持该字段。 |
| vec\_fp16\_ratio | vec fp16类型指令的cycle数在total cycle数中的占用比。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。Atlas 350 加速卡不支持该字段。 |
| vec\_int32\_ratio | vec int32类型指令的cycle数在total cycle数中的占用比。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。Atlas 350 加速卡不支持该字段。 |
| vec\_misc\_ratio | vec misc类型指令的cycle数在total cycle数中的占用比。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。Atlas 350 加速卡不支持该字段。 |
| cube\_fops | cube类型的浮点运算数，即计算量，可用于衡量算法/模型的复杂度，其中fops表示floating point operations，缩写为FLOPs。 |
| vector\_fops | vector类型浮点运算数，即计算量，可用于衡量算法/模型的复杂度，其中fops表示floating point operations，缩写为FLOPs。Atlas 350 加速卡不支持该字段。 |


**表4 字段说明（Memory）**

| 字段名 | 字段含义 |
| --- | --- |
| ub\_read\_bw(GB/s) | ub读带宽速率，单位GB/s。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。 |
| ub\_write\_bw(GB/s) | ub写带宽速率，单位GB/s。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。 |
| l1\_read\_bw(GB/s) | l1读带宽速率，单位GB/s。 |
| l1\_write\_bw(GB/s) | l1写带宽速率，单位GB/s。 |
| l2\_read\_bw | l2读带宽速率，单位GB/s。Atlas 350 加速卡不支持该字段。 |
| l2\_write\_bw | l2写带宽速率，单位GB/s。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。Atlas 350 加速卡不支持该字段。 |
| main\_mem\_read\_bw(GB/s) | 主存储器读带宽速率，单位GB/s。 |
| main\_mem\_write\_bw(GB/s) | 主存储器写带宽速率，单位GB/s。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。 |


**表5 字段说明（MemoryL0）**

| 字段名 | 字段含义 |
| --- | --- |
| l0a\_read\_bw(GB/s) | l0a读带宽速率，单位GB/s。 |
| l0a\_write\_bw(GB/s) | l0a写带宽速率，单位GB/s。 |
| l0b\_read\_bw(GB/s) | l0b读带宽速率，单位GB/s。 |
| l0b\_write\_bw(GB/s) | l0b写带宽速率，单位GB/s。 |
| l0c\_read\_bw(GB/s) | vector从l0c读带宽速率，单位GB/s。 |
| l0c\_write\_bw(GB/s) | vector向l0c写带宽速率，单位GB/s。Atlas 350 加速卡不支持该字段。 |
| l0c\_read\_bw\_cube(GB/s) | cube从l0c读带宽速率，单位GB/s。 |
| l0c\_write\_bw\_cube(GB/s) | cube向l0c写带宽速率，单位GB/s。 |
| 注：采集AI Vector Core的MemoryL0性能指标时，采集到的数据都为0。 | 注：采集AI Vector Core的MemoryL0性能指标时，采集到的数据都为0。 |


**表6 字段说明（MemoryUB）**

| 字段名 | 字段含义 |
| --- | --- |
| ub\_read\_bw\_vector(GB/s) | vector从ub读带宽速率，单位GB/s。 |
| ub\_write\_bw\_vector(GB/s) | vector向ub写带宽速率，单位GB/s。 |
| ub\_read\_bw\_scalar(GB/s) | scalar从ub读带宽速率，单位GB/s。 |
| ub\_write\_bw\_scalar(GB/s) | scalar向ub写带宽速率，单位GB/s。 |


**表7 字段说明（ResourceConflictRatio）**

| 字段名 | 字段含义 |
| --- | --- |
| vec\_bankgroup\_cflt\_ratio | vec\_bankgroup\_stall\_cycles类型指令执行cycle数在total cycle数中的占用比。由于vector指令的block stride的值设置不合理，造成bankgroup冲突。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。Atlas 350 加速卡不支持该字段。 |
| vec\_bank\_cflt\_ratio | vec\_bank\_stall\_cycles类型指令执行cycle数在total cycle数中的占用比。由于vector指令操作数的读写指针地址不合理，造成bank冲突。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。 |
| vec\_resc\_cflt\_ratio | vec\_resc\_cflt\_ratio类型指令执行cycle数在total cycle数中的占用比。当算子中涉及多个计算单元，应该尽量保证多个单元并发调度。当某个计算单元正在执行计算，但算子逻辑仍然往该单元下发指令，就会造成整体的算力没有得到充分应用。 Atlas 200I/500 A2 推理产品 不支持该字段，给予默认值N/A。 |


**表8 字段说明（L2Cache）**

| 字段名 | 字段含义 |
| --- | --- |
| write\_cache\_hit | 写cache命中的次数。Atlas 350 加速卡不支持该字段。 |
| write\_cache\_miss\_allocate | 写cache缺失后重新分配缓存的次数。Atlas 350 加速卡不支持该字段。 |
| r\*\_read\_cache\_hit | 读r\*通道cache命中次数。Atlas 350 加速卡不支持该字段。 |
| r\*\_read\_cache\_miss\_allocate | 读r\*通道cache缺失后重新分配的次数。Atlas 350 加速卡不支持该字段。 |
| read\_local\_l2\_hit | 读Cache命中的次数。仅Atlas 350 加速卡支持该字段。 |
| read\_local\_l2\_miss | 读Cache缺失次数。仅Atlas 350 加速卡支持该字段。 |
| read\_local\_l2\_victim | 读Cache未命中并触发Cache中数据被换出的次数。仅Atlas 350 加速卡支持该字段。 |
| write\_local\_l2\_hit | 写Cache命中的次数。仅Atlas 350 加速卡支持该字段。 |
| write\_local\_l2\_miss | 写Cache缺失次数。仅Atlas 350 加速卡支持该字段。 |
| write\_local\_l2\_victim | 写Cache未命中并触发Cache中数据被换出的次数。仅Atlas 350 加速卡支持该字段。 |
| 仅支持产品： Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Atlas 350 加速卡 Atlas 200I/500 A2 推理产品 | 仅支持产品： Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Atlas 350 加速卡 Atlas 200I/500 A2 推理产品 |


**表9 字段说明（MemoryAccess）**

| 字段名 | 字段含义 |
| --- | --- |
| read\_main\_memory\_datas(KB) | 对片上内存读的数据量，单位KB。 |
| write\_main\_memory\_datas(KB) | 对片上内存写的数据量，单位KB。 |
| gm\_to\_l1\_datas(KB) | GM到L1的数据搬运量，单位KB。 |
| l0c\_to\_l1\_datas(KB) | L0C到L1的数据搬运量，单位KB。 |
| l0c\_to\_gm\_datas(KB) | L0C到GM的数据搬运量，单位KB。 |
| gm\_to\_ub\_datas(KB) | GM到UB的数据搬运量，单位KB。 |
| ub\_to\_gm\_datas(KB) | UB到GM的数据搬运量，单位KB。 |
| 仅支持产品： Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | 仅支持产品： Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 |
