界面介绍
功能说明
详情(Details)界面用于展示算子基础信息、计算负载分析、核间负载分析、Roofline瓶颈分析和内存负载分析,并以图形和数据窗格呈现方式展示分析结果。
界面展示
请参见导入数据章节导入msprof采集的算子Profiling的bin文件,获取bin文件请参见《算子工具使用指南》中“算子调优(msProf) > 工具使用”章节的“msprof op”内容。
支持导入的二进制bin文件只允许单个文件导入,不支持以文件夹方式导入。
详情(Details)界面包含基础信息(Base Info)(区域一)、核间负载分析(Core Occupancy)(区域二)、Roofline瓶颈分析(Roofline)(区域三)、计算工作负载分析(Compute Workload Analysis)(区域四)和内存负载分析(Memory Workload Analysis)(区域五),如图1所示。
- 区域一:基础信息(Base Info),可查看算子基础信息,包含名称、时长、类型等内容,参数详细说明如表1所示。
表1 基本信息参数说明 中文参数
英文参数
说明
名称
Name
算子名称。
时长 (μs)
Duration (μs)
算子总耗时。
算子类型
Op Type
算子类型。有mix、vector、cube和AiCore四种类型。
设备号
Device Id
设备id。
进程号
Pid
进程号。
Block数量
Block Dim
Sub Block的数量。当算子类型为vector、cube和AiCore时,为此参数名称。
混合Block数量
Mix Block Dim
Sub Block的数量。当算子类型为mix时,为此参数名称。
Block详情
Block Detail
Sub Block耗时详情。当算子类型为vector、cube和AiCore时,为此参数名称,其中字段解释如表2所示。
混合Block详情
Mix Block Detail
Sub Block耗时详情。当算子类型为mix时,为此参数名称,其中字段解释如表3所示。
- 区域二:核间负载分析(Core Occupancy),分别通过时钟周期数量、核总吞吐量、Cache命中率展示核间负载并进行分析,如图2所示。
- 区域三:Roofline瓶颈分析(Roofline),通过Roofline模型图展示算子性能,并对其结果进行分析,为开发者提供性能优化依据。Roofline模型图中的x轴为算数强度,单位是Ops/Byte,表示每字节(Byte)内存支持的操作次数;y轴为性能,单位是TOps/s,表示每秒钟可进行多少万亿次操作。
Roofline模型图上会显示算力名称,用于描述计算最大算力的指令类型组成,例如Cube_INT(100.000000%) + Vec_FP16(30.000000%),Vec_FP32(70.000000%), 代表此时cube计算单元处理的全是int类型指令,vector计算单元处理的指令30%是fp16类型,70%是fp32类型。
仅Atlas A2训练系列产品和
Atlas 推理系列产品 支持此模块。- 当硬件产品为Atlas A2训练系列产品时,Roofline性能模型分析包含内存单元、内存通路以及搬运单元页签。
内存单元:显示HBM/L2和Memory Unit模型图,如图3所示,参数如表4所示。
表4 内存单元参数 参数
说明
HBM Read + Write
高带宽存储器单元的读与写。
L2 Read + Write
L2的读与写。
L1 Read + Write
L1内存单元的读与写。
Write to L1
写至L1内存单元。
Read from L1
从L1内存单元的读。
Write to L0A
写至L0A内存单元。
Write to L0B
写至L0B内存单元。
Read from L0C
从L0C内存单元的读。
UB Read + Write
UB内存单元的读与写。
Read from UB
从UB内存单元的读。
Write to UB
写至UB内存单元。
Vector Read UB
Vector从UB内存单元的读。
Vector Write UB
Vector写至UB内存单元。
- 当硬件产品为
Atlas 推理系列产品 时,仅存在内存单元内容,如图6所示,参数如表7所示。表7 内存单元参数 参数
说明
L1 Read + Write
L1内存单元的读与写。
Read from L0C
从L0C内存单元的读。
Read from L1
从L1内存单元的读。
Read from UB
从UB内存单元的读。
UB Read + Write
UB内存单元的读与写。
Vector Read UB
Vector从UB内存单元的读。
Vector Write UB
Vector写至UB内存单元。
Write to L0A
写至L0A内存单元。
Write to L0B
写至L0B内存单元。
Write to L1
写至L1内存单元。
Write to UB
写至UB内存单元。
- 当硬件产品为Atlas A2训练系列产品时,Roofline性能模型分析包含内存单元、内存通路以及搬运单元页签。
- 区域四:计算工作负载分析(Compute Workload Analysis),以柱状图和数据窗格呈现方式查看相应信息,便于开发人员分析。如图7所示,参数详细说明如表8所示。图标中的内容为各个Block的计算负载分析结果。
表8 计算工作负载分析参数说明 中文参数
英文参数
说明
Block ID
Block ID
Sub Block序号。可通过切换Block ID来查看对应信息。
当算子类型为AiCore时,此参数显示NA,展示的是多核平均值。
Pipe Utilization
Pipe Utilization
Pipe(指令队列)可视化,以柱状图方式展示。
- 横坐标:Cycles占比,计算方式为Cycles/总的Cycles。Cycles为该指令在Sub Block上执行消耗的时钟周期。
- 纵坐标:算子指令,由bin文件的数据中提供。
CUBE
CUBE
cube类型的指令名称。当算子类型为cube时,显示此参数。
CUBE0
CUBE0
cube类型的指令名称。当算子类型为mix时,显示此参数。
VECTOR
VECTOR
vector类型的指令名称。当算子类型为vector和cube时,显示此参数。
VECTOR0
VECTOR0
vector类型的指令名称。当算子类型为mix时,显示此参数。
VECTOR1
VECTOR1
vector类型的指令名称。当算子类型为mix时,显示此参数。
AICORE
AICORE
AiCore类型的指令名称。当算子类型为AiCore时,显示此参数。
指令数
Instructions
算子指令数量。
时长(μs)
Duration(μs)
算子指令耗时。
数据搬运量(byte)
Data Volume(byte)
算子指令数据量。
- 区域五:内存负载分析(Memory Workload Analysis),以内存热力图和数据窗格呈现方式查看相应信息,如图8所示,参数配置如表9所示。热力图左侧的“Peak”为箭头颜色,值为峰值带占比(最大带宽占比)。图标中的内容为各个Block的内存负载分析结果。
表9 参数配置 中文参数
英文参数
说明
Block ID
Block ID
Sub Block序号。在Block ID选框中可以选择想要查看的Sub Block。
当算子类型为AiCore时,Block ID显示NA,展示的是多核平均值。
显示为
Show As
可选项,选择热力图连线箭头内容以请求数或者带宽展示。热力图箭头代表流向。
- 请求数(Num of Request)
- 带宽(Bandwidth)
数据窗格呈现内容随算子类型而变化,内容是bin文件的数据解析结果,具体呈现如下:
- 当算子类型为AiCore时,表格窗格内容如表10所示。
- 当算子类型为mix时,表格窗格内容如表11所示。
表11 mix类型 中文参数
英文参数
说明
Cache
Cache
L2缓存。
命中次数
Hit
cache命中次数。
未命中次数
Miss
cache未命中后重新分配缓存的次数。
总次数
Total
cache请求总次数。
命中率(%)
Hit Rate(%)
cache命中率。
Cube
Cube
cube计算单元。
HBM Cube
HBM Cube
cube单元的高带宽存储器单元。
HBM Vector Core0
HBM Vector Core0
aicore内core0的vector单元的高带宽存储器单元。
HBM Vector Core1
HBM Vector Core1
aicore内core1的vector单元的高带宽存储器单元。
L0A
L0A
L0A储存单元。
L0B
L0B
L0B储存单元。
L0C
L0C
L0C储存单元。
L1
L1
L1储存单元。
请求数
Requests
操作数量。
吞吐量(GB/s)
Throughput(GB/s)
吞吐量,表示通路每秒的传输数据量,单位为GB/s。
峰值(最大带宽占比)(%)
Peak(%)
与理论带宽的比率。
Pipe Cube
Pipe Cube
cube单元的计算通路。
Pipe Vector Core0
Pipe Vector Core0
aicore内core0的vector单元的计算通路。
Pipe Vector Core1
Pipe Vector Core1
aicore内core1的vector单元的计算通路。
指令数
Instructions
指令数量。
时钟周期
Cycle
通路消耗的时钟周期。
等待周期
Wait Cycles
对应pipe上被阻塞的cycle数。
活跃率(%)
Active Rate(%)
运行cycle数占总的cycle的百分比。
UB Core0
UB Core0
mix算子aicore内core0的ub储存单元。
UB Core1
UB Core1
mix算子aicore内core1的ub储存单元。
Vector
Vector core0
vector计算单元。
- 当算子类型为vector时,表格窗格内容如表12所示。
表12 vector类型 中文参数
英文参数
说明
Cache
Cache
L2缓存。
命中次数
Hit
cache命中次数。
未命中次数
Miss
cache未命中后重新分配缓存的次数。
总次数
Total
cache请求总次数。
命中率(%)
Hit Rate(%)
cache命中率。
HBM
HBM
高带宽存储器单元。
请求数
Requests
操作数量。
吞吐量(GB/s)
Throughput(GB/s)
吞吐量,表示通路每秒的传输数据量,单位为GB/s。
Pipe
Pipe
计算通路。
指令数
Instructions
指令数量。
时钟周期
Cycle
通路消耗的时钟周期。
等待周期
Wait Cycles
对应pipe上被阻塞的cycle数。
活跃率(%)
Active Rate(%)
运行cycle数占总的cycle的百分比。
UB
UB
ub储存单元。
Vector
Vector
vector计算单元。
峰值(最大带宽占比)(%)
Peak(%)
与理论带宽的比率。
- 当算子类型为cube时,表格窗格内容如表13所示。
表13 cube类型 中文参数
英文参数
说明
Cache
Cache
L2缓存。
命中次数
Hit
cache命中次数。
未命中次数
Miss
cache未命中后重新分配缓存的次数。
总次数
Total
cache请求总次数。
命中率(%)
Hit Rate(%)
cache命中率。
Cube
Cube
cube计算单元。
HBM
HBM
高带宽存储器单元。
L0A
L0A
L0A储存单元。
L0B
L0B
L0B储存单元。
L0C
L0C
L0C储存单元。
L1
L1
L1储存单元。
请求数
Requests
操作数量。
吞吐量(GB/s)
Throughput(GB/s)
吞吐量,表示通路每秒的传输数据量,单位为GB/s。
峰值(最大带宽占比)(%)
Peak(%)
与理论带宽的比率。
Pipe
Pipe
计算通路。
指令数
Instructions
指令数量。
时钟周期
Cycle
通路消耗的时钟周期。
等待周期
Wait Cycles
对应pipe上被阻塞的cycle数。
活跃率(%)
Active Rate(%)
运行cycle数占总的cycle的百分比。