news 2026/10/10 2:28:53

如何读懂 NPUSim 指令流水图:Perfetto 可视化操作与关键字段全解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何读懂 NPUSim 指令流水图:Perfetto 可视化操作与关键字段全解

如何读懂 NPUSim 指令流水图:Perfetto 可视化操作与关键字段全解

【免费下载链接】npu-simulatorNPUSim(全称NPU Simulator)是一款面向算子开发场景的SoC级芯片仿真工具,用于分析运行在AI仿真器上的AI任务在各阶段的精度和性能数据(如指令执行情况等)。该工具有助于用户进行深度性能调优,使研发人员在无法获取或芯片资源紧缺的情况下,也能获得与真实芯片几乎一致的验证效果和性能反馈。项目地址: https://gitcode.com/cann/npu-simulator

NPUSim(NPU Simulator)是一款面向算子开发的SoC 级芯片仿真工具,它能还原 AI 任务在各阶段的精度与性能数据,其中最有价值的产物之一就是指令流水图(Trace)。本文带你用Perfetto打开并读懂 NPUSim 生成的trace_core*.json,一次性搞懂泳道结构、关键指令字段和快速定位瓶颈的方法,让新手也能像老手一样分析性能。

为什么指令流水图是性能调优的核心

指令流水图以指令维度还原每条指令在 AI Core 上的执行时序,并关联调用栈帮助快速定位瓶颈。它比一个汇总数字更直观:

  • 看并行:计算与搬运流水是否重叠,是否存在空泡
  • 看延迟:某条指令在流水线里停留多久,卡在哪一级
  • 看分布:向量、标量、矩阵指令各自占比与耗时

生成指令流水图的完整流程见 使用指南 · 指令流水图,其报告目录结构大致如下:

report/ └── results/ └── kernel_*_reports/ ├── summary.json # 性能分析汇总 ├── aicore_utilization.json # AI Core 利用率 └── core_0/ └── trace_core0.json # 指令流水图(Chrome Tracing JSON)

用 Perfetto 三步打开指令流水图

trace_core*.json是标准 Chrome Tracing JSON,推荐优先用 Perfetto 打开(也支持 Chrome 浏览器):

  1. 导入文件:访问 Perfetto 网页版,点击 "Open trace file",选择trace_core*.json导入。
  2. 缩放浏览:用滚轮/快捷键放大缩放到感兴趣的 kernel 时间区间,观察各泳道(轨道)的指令块分布。
  3. 点击切片:单击任意一个指令块,底部会自动展开Details面板,显示该指令的Name / Category / Start time / Duration / Thread与Arguments参数。

Perfetto 支持大文件加载、多泳道筛选与 SQL 查询,体验优于 Chrome 内置 tracing。下面是导入后的实际效果,可以看到RVECEX_SL000到RVECEX_SL031一条条向量轨道上,RV_VADD、RV_VMUL等执行块密集排布:

💡小提示:浏览器单页运行时内存上限通常约2GB,超大 trace 可能加载失败;此时可用report -n指定少数核(如单核)先生成,减小文件体积。

看懂轨道(泳道)命名规律

流水图里每个轨道(泳道)的名字都由核心类型_流水线分组 + 区段_指令类型组合而成,例如AIC_CUBEINSTR_CUBE表示 AIC 核 Cube 流水线。掌握这套命名规律,就能快速定位到目标子核心。常见轨道前缀含义:

前缀含义
AIC矩阵计算核
AIV0/AIV1向量核 0 / 向量核 1
RVECEXvector 寄存器 EXECUTE(执行)指令
RVECLDvector 寄存器 LOAD(加载)指令
RVECSTvector 寄存器 SET/STORE 指令
WARP00/WARP01…SIMT 模式下按 warp 划分的向量轨道

完整轨道名对照表见 使用指南 · 表 2 轨道名说明。

关键字段全解:从指令块到 Arguments

单击指令块后,底部Details面板会给出结构化字段。以图中RV_VADD为例,关键字段解读如下:

字段示例值含义
NameRV_VADD指令名称(如 RV_VLD、RV_PLT、RV_VADD)
Categoryinst事件类别,指令为 inst
Start time00:00:00.045…指令起始时间
Duration22ns指令执行耗时
ThreadAIV0_A2_RVECEX[4]所属子核心 / 流水线 / 单元
Argumentsunit / task_id / ps / inst_id / exec_ipc附加参数,含 IPC 等性能分量

其中Arguments里的exec_ipc非常关键:它反映向量执行算力的利用率,理论上限为 2(双发射)。IPC 分量越接近上限,说明算力利用越充分,这一点在 VF 报告里被系统化利用,详见 VF 报告指南。

图中还展示了底部Slices统计视图:框选一段区间后,Perfetto 会汇总该区间内各指令(RV_VLD、RV_VST、RV_VADD等)的Count与Wall Duration,方便你一眼判断哪类指令占了最多时间:

从流水图到瓶颈定位的分析套路

结合流水图与配套报告,建议按下面这条链路排查:

  1. 看整体:先在 性能分析汇总summary.json里确认top_level_diagnosis的主导流水线与利用率,判断瓶颈方向。
  2. 看并行:在流水图上比对计算轨(CUBE/RVECEX)与搬运轨(MTE1/MTE2)是否重叠,重叠率低说明存在空泡。
  3. 看单核:用report -n <core>聚焦可疑核,放大到具体 kernel 区间。
  4. 看指令:单击耗时最长的指令块,读Arguments的 IPC、task_id,定位到代码调用栈。

📊 若还想看各类型指令的耗时分布与统计(Min/Max/Mean ticks),可参考指令耗时分布报告,直观呈现PUSHQ / SCALAR / RVECEX / RVECLD等的分布曲线:

常见问题速查

  • 加载失败?:文件过大触发浏览器内存上限,用report -n减少核数重新生成,或换更大的 trace 可视化后端。
  • 轨道太多看不懂?:先认准核心前缀AIC/AIV0/AIV1,再按指令类型缩放到感兴趣子集。
  • IPC 低怎么办?:优先看exec_ipc与主导流水线利用率,必要时结合 VF 报告 定位最慢的 VF 函数。

一句话总结:指令流水图 = 打开trace_core*.json→ 用Perfetto导入 → 读泳道命名 → 点指令看Arguments/IPC → 结合summary.json定位瓶颈。掌握这套方法,你就能在没有真实芯片的情况下,获得与实芯几乎一致的性能反馈。

📚 延伸阅读:

  • 数据采集与报告生成全流程:使用指南
  • 使用场景(Kernel 直调 / PyTorch 调用):使用场景
  • VF 性能 JSON 字段详解:VF 报告指南
  • 报告生成实现源码:report 模块

【免费下载链接】npu-simulatorNPUSim(全称NPU Simulator)是一款面向算子开发场景的SoC级芯片仿真工具,用于分析运行在AI仿真器上的AI任务在各阶段的精度和性能数据(如指令执行情况等)。该工具有助于用户进行深度性能调优,使研发人员在无法获取或芯片资源紧缺的情况下,也能获得与真实芯片几乎一致的验证效果和性能反馈。项目地址: https://gitcode.com/cann/npu-simulator

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/10 2:23:45

应用软件系统数据备份方案:实时、定期、阶段三档备份与恢复实操

简介&#xff1a;这份《应用软件系统数据备份方案》面向企业IT运维人员、系统管理员及信息化建设从业者&#xff0c;聚焦数据安全与业务连续性这一核心命题&#xff0c;帮助读者建立从备份等级划分到策略落地的完整认知框架。资源为单个docx文档&#xff0c;压缩包约15KB&#…

作者头像 李华
网站建设 2026/10/10 2:20:57

PS5串流实战:AnyPS5统一配置,局域网与远程调优全指南

先说个背景。我之前很长一段时间都靠串流把PS5接到屋里各种屏幕上玩——客厅电视、书房显示器、卧室平板&#xff0c;来回切换。折腾多了就会发现&#xff0c;真正麻烦的不是串流本身&#xff0c;而是每次换设备都要重新调协议、配参数、处理掉线&#xff0c;体验非常割裂。后来…

作者头像 李华
网站建设 2026/10/10 2:19:51

基于 BiLSTM 的微博情感四分类实战:数据处理、模型训练到 Web 部署

基于 BiLSTM 的微博情感四分类实战&#xff1a;数据处理、模型训练到 Web 部署 做舆情分析&#xff0c;最基础也最关键的一步&#xff0c;就是判断一条微博到底表达的是什么情绪。高兴还是愤怒&#xff0c;厌恶还是低落&#xff0c;如果能自动识别&#xff0c;对舆情监控、产品…

作者头像 李华