昇腾社区首页
中文
注册

界面介绍

功能说明

在昇腾异构计算架构中,MindStudio Insight工具以时间线(Timeline)的呈现方式将训练/推理过程中的host、device上的运行详细情况平铺在时间轴上,直观呈现host侧的API耗时情况以及device侧的task耗时,并将host与device进行关联呈现,帮助用户快速识别host瓶颈或device瓶颈,同时提供各种筛选分类、专家建议等功能,支撑用户进行深度调优。

界面展示

时间线(Timeline)界面包含工具栏(区域一)、时间线树状图(区域二)、图形化窗格(区域三)和数据窗格(区域四)四个部分组成,如图1所示。
图1 时间线(Timeline)界面
  • 区域一:工具栏,包含常用快捷按钮,从左至右依次为标记列表、过滤(支持按卡或按泳道过滤展示)、搜索、连线事件、重置缩放(页面复原)和时间轴缩小放大按钮。
  • 区域二:时间线树状图,TEXT场景和DB场景显示会有所不同,具体泳道信息请参见表1
    • TEXT场景:显示集群场景下各设备的分层信息,以Rank维度显示分层信息,一层级为Rank ID,二层级为进程或专项分层,三层级为线程等名称。二层级包括Python层数据(包含PyTorch和打点数据的耗时信息)、CANN层数据(包含AscendCL、GE和Runtime组件的耗时数据)、底层NPU数据(包含Ascend Hardware下各个Stream任务流的耗时数据和迭代轨迹数据、Communication和Overlap Analysis通信数据、Memory内存数据以及其他昇腾AI处理器系统数据)和AI Core Freq等层级,层级内容展示随导入的数据而变化。
    • DB场景:显示各机器下的信息,一层级为机器名称,二层级为Host和Rank ID。Host层级是按照进程与线程级维度展示PyTorch和CANN的数据;Rank ID层级包括底层NPU数据(包含Ascend Hardware下各个Stream任务流的耗时数据和迭代轨迹数据、Communication和Overlap Analysis通信数据、Memory内存数据以及其他昇腾AI处理器系统数据)和AI Core Freq等层级,且卡下属层级内容的展示随导入的数据而变化。
  • 区域三:图形化窗格,展示的数据是迭代内的数据,图形化窗格对应时间线树状图,逐行对时间线进行图形化展现,包括上层应用算子、各组件及接口的执行序列和执行时长。
  • 区域四:数据窗格,统计信息或算子详情信息展示区,选中详情(Slice Detail)为选中单个算子的详细信息、选中列表(Slice List)为某一泳道选中区域的算子列表信息、系统视图(System View)为某类算子的汇总信息、以及发现(Find)为搜索的算子信息。
表1 泳道信息

一层级泳道名称

二层级泳道名称

说明

Host

process

仅db格式文件支持展示此泳道,在二层级process泳道下存在三层级泳道Thread,四层级泳道pytorch、CANN和MsTx,分别展示的是PyTorch框架下上层应用线程运行的耗时信息、CANN框架下线程运行的耗时信息和打点信息。

Python

Thread

应用层数据,每个子泳道Thread包含上层应用线程运行的耗时信息,需要使用PyTorch Profiler或msproftx采集。仅支持在TEXT格式文件下展示该泳道。

CANN

Thread

CANN层数据,每个子泳道Thread主要包含AscendCL、GE、Runtime组件以及Node(算子)的耗时数据。

如果是db格式文件,二层级泳道名称可能包含acl,model,node,hccl,runtime,op,queue,trace,mstx等。

MindSpore

Thread

在MindSpore场景下,展示当前Thread下运行的阶段耗时。

Scope Layer

Thread

在MindSpore场景下,展示当前Thread网络层级的执行耗时。

Python GC

Python GC

在PyTorch场景下,profiler采集数据时开启了GC检测功能后,如果在采集的时间周期内发生了GC事件,则采集到的数据中会记录GC事件并显示在Python GC泳道中。

Ascend Hardware

Stream <id>

底层NPU数据,任务调度信息数据,记录AI任务运行时,各个Task在不同加速器下的执行耗时。

Step Trace

迭代轨迹数据。仅支持在TEXT格式文件下展示该泳道。

HBM

HBM <id>/Read

HBM内存读取速率,单位为MB/s。

HBM <id>/Write

HBM内存写入速率,单位为MB/s。

DDR

Read

DDR内存读取速率。

Write

DDR内存写入速率。

LLC

LLC <id> Read/Hit Rate

LLC <id> Write/Hit Rate

三级缓存读写速率数据,三级缓存读取、写入时的吞吐量。

LLC <id> Read/Throughput

LLC <id> Write/Throughput

三级缓存读取、写入时的命中率。

NPU_MEM

APP/DDR

进程级DDR内存占用,单位KB。

APP/HBM

进程级HBM内存占用,单位KB。

APP/MEMORY

进程级DDR和HBM内存占用和,单位KB。

Device/DDR

设备级DDR内存占用,单位KB。

Device/HBM

设备级HBM内存占用,单位KB。

Device/MEMORY

设备级DDR和HBM内存占用和,单位KB。

Communication

Group <id> Communication

通信域下的通信算子。一个卡(Rank)可以存在于不同的通信域中,一个Group标识当前卡在当前通信域的行为。

Plane <id>

集合通信算子信息。网络平面ID,对多个收发通信链路的并行调度执行,每个Plane就是一个并发通信维度。

Stars Soc Info

L2 Buffer Bw Level

SoC传输带宽信息,L2 Buffer带宽等级信息。

Mata Bw Level

Mata带宽等级信息。

acc_pmu

Accelerator {accId}/readBwLevel

DVPP和DSA加速器读带宽。

Accelerator {accId}/readOstLevel

DVPP和DSA加速器读并发。

Accelerator {accId}/writeBwLevel

DVPP和DSA加速器写带宽。

Accelerator {accId}/writeOstLevel

DVPP和DSA加速器写并发。

Overlap Analysis

Communication

通信时间。

Communication(Not Overlapped)

未被计算掩盖的通信时间。

Computing

计算时间。

Free

Device侧既不在计算也不在通信的时间。按Step维度拆解时,会被进一步区分为Preparing和Free,其中Preparing在做数据预处理,加载拷贝等操作。

AI Core Utilization

Average

AI Core指令占比数据的均值。AI Core Utilization泳道仅支持在TEXT格式文件下展示。

Core <id>

各AI Core在执行Task的total cycle(从AI Core开始执行算子的第一条指令开始计数,到最后一条指令执行完成)占比情况。

AI Core Freq

AI Core Freq

展示AI Core芯片在执行AI任务的过程中频率的变化情况。

AI Core Freq泳道仅支持展示Atlas A2 训练系列产品导出的性能数据。

SIO

dat_rx、dat_tx

数据流通道的接收、发送带宽。SIO泳道仅支持在TEXT格式文件下展示。

SIO泳道仅支持展示Atlas A3 训练系列产品/Atlas A3 推理系列产品die间传输带宽信息。

req_rx、req_tx

请求流通道的接收、发送带宽。

rsp_rx、rsp_tx

回应流通道的接收、发送带宽。

snp_rx、snp_tx

侦听流通道的接收、发送带宽。

QoS

QoS <id>:OTHERS

设备QoS带宽信息。QoS泳道仅支持在TEXT格式文件下展示。

NIC

Port <id>/Rx

Port <id>/Tx

  • TEXT场景:展示每个时间节点网络信息数据。
  • DB场景:展示带宽信息数据。

泳道名称会根据导入的数据不同而变化。

RoCE

Port <id>/Rx

Port <id>/Tx

RoCE通信接口带宽数据。RoCE泳道仅支持在TEXT格式文件下展示。

PCIe

PCIe_cpl

接收写请求的完成数据包,单位MB/s。Tx表示发送端,Rx表示接收端。

PCIe_nonpost

PCIe Non-Posted数据传输带宽,单位MB/s。Tx表示发送端,Rx表示接收端。

PCIe_nonpost_latency

PCIe Non-Posted模式下的传输时延,单位us。Tx表示发送端,Rx表示接收端。PCIe_nonpost_latency无Rx,取固定值0。

PCIe_post

PCIe Posted数据传输带宽,单位MB/s。Tx表示发送端,Rx表示接收端。泳道名称会根据导入的数据不同而变化。

HCCS

txThroughput

rxThroughput

HCCS集合通信带宽数据,展示接收带宽和发送带宽,单位MB/s。

biu_group

Bandwidth Read

BIU总线接口单元读取指令时的带宽。biu_group泳道仅支持在TEXT格式文件下展示。

Bandwidth Write

BIU总线接口单元写入指令时的带宽。

Latency Read

BIU总线接口单元读取指令时的时延。

Latency Write

BIU总线接口单元写入指令时的时延。

aic_core_group

Cube

矩阵类运算指令在本采样周期内的cycle数和占比。aic_core_group泳道仅支持在TEXT格式文件下展示。

Mte1

L1->L0A/L0B搬运类指令在本采样周期内的cycle数和占比。

Mte2

片上内存->AICORE搬运类指令在本采样周期内的cycle数和占比。

Mte3

AICORE->片上内存搬运类指令在本采样周期内的cycle数和占比。

aiv_core_group

Mte1

L1->L0A/L0B搬运类指令在本采样周期内的cycle数和占比。aiv_core_group泳道仅支持在TEXT格式文件下展示。

Mte2

片上内存->AICORE搬运类指令在本采样周期内的cycle数和占比。

Mte3

AICORE->片上内存搬运类指令在本采样周期内的cycle数和占比。

Scalar

标量类运算指令在本采样周期内的cycle数和占比。

Vector

向量类运算指令在本采样周期内的cycle数和占比。

Stars Chip Trans

PA Link Rx

PA流量接收等级。当有集合通信带宽时,不建议参考该字段值,该字段为粗粒度的统计值。Stars Chip Trans泳道仅支持在TEXT格式文件下展示。

PA Link Tx

PA流量发送等级。当有集合通信带宽时,不建议参考该字段值,该字段为粗粒度的统计值。

PCIE Read Bandwidth

PCIe读带宽。当有PCIe带宽时,不建议参考该字段值,该字段为粗粒度的统计值。

PCIE Write Bandwidth

PCIe写带宽。当有PCIe带宽时,不建议参考该字段值,该字段为粗粒度的统计值。

CPU Usage

CPU <id>

Host侧CPU利用率数据。

Memory Usage

Memory Usage

Host侧内存利用率数据。

Disk Usage

Disk Usage

Host侧磁盘I/O利用率数据。

Network Usage

Network Usage

Host侧网络I/O利用率数据。

OS Runtime API

Thread

Host侧syscall和pthreadcall数据。OS Runtime API泳道仅支持在TEXT格式文件下展示。

通过观察时间线视图各个层级上的耗时长短、间隙等判断对应组件和算子是否存在性能问题,如算子下发是否存在瓶颈、是否存在高耗时的kernel以及是否存在冗余的转换类算子。