☰
PyPTO Toolkit GM 内存可视化:一图看清 Tensor 分配与冲突,内存调优必备
2026/10/18 0:00:14 网站建设 项目流程
  • 开发工具
  • IDE
  • 数据可视化
  • Ascend

【免费下载链接】pypto-vscode

项目地址:https://gitcode.com/cann/pypto-vscode
点击查看免费下载

PyPTO Toolkit是 PyPTO 框架的全流程辅助工具,其中的GM 内存可视化(GM Memory Visualization)功能可以把 GM 内存的分配结果画成一张图:每个 Tensor 占用哪段地址、存活多长时间、与谁发生地址冲突,一眼就能定位。对于做算子开发、内存调优的开发者来说,这是排查显存浪费与 Tensor 重叠问题的必备视图。

GM 内存可视化能解决什么问题 🤔

编译后的 PyPTO 程序会在 GM(Global Memory)上申请大量内存块,用来存放各个 Tensor 的数据。手动分析这些内存块非常困难:

  • Tensor 分配在哪里?大小、地址、存活区间都不直观
  • 是否发生了地址冲突(两个 Tensor 在同一区间重叠)?
  • 距离两个 Tensor 有多近,是否存在潜在的访存干扰?

GM 内存可视化视图直接基于内存分布文件(memory_usage_visualization.json)渲染出时间-地址二维图表,把上述问题图形化。官方功能说明见 gm_memory.md。

准备数据:生成内存分布文件

  1. 用 Visual Studio Code 运行 PyPTO 程序(或在侧边栏打开 PyPTO Toolkit),运行结果会生成结果文件夹,其中包含内存分布文件memory_usage_visualization.json。数据准备流程详见 data_preparation.md。

    项目内也自带一份示例数据,可用于快速体验:test/fixtures/memory_usage_visualization.json。

  2. 该文件是 GM 内存可视化的唯一输入。打开命令在 registerCommand.ts 中注册,只有文件名为memory_usage_visualization.json时才会渲染视图。

一键打开 GM 内存可视化 🚀

在 Visual Studio Code 资源管理器中右键单击内存分布文件,依次选择:

PyPTO Toolkit:高级操作→PyPTO Toolkit:GM内存可视化

视图打开后,横轴是时间(Tensor 的存活区间),纵轴是内存地址,每个色块就是一个 Tensor。后端加载逻辑见 gm-memory-visual-server.ts,前端图表渲染见 memoryUsage.vue。

读懂 Tensor 分配与冲突图表 📊

打开视图后,常用操作如下(详细步骤见 gm_memory.md):

操作效果
单击 Tensor查看该 Tensor 的内存分配信息,支持表格 / 图表两种展示
双击 Region ID进入该 Region 的内存分配详情
按住Alt选中两个 Tensor测量两者之间的内存距离
右键点击 Tensor查看距离该 Tensor 最近的 Tensor
Ctrl+ 鼠标滚轮缩放时间轴,快速定位冲突位置
Alt+ 鼠标滚轮缩放地址纵轴,放大查看密集区间

左侧的缩略导航条可以帮助你在超长地址区间中快速跳转,搜索框则支持按 Tensor 名称过滤。

💡调优技巧:先用Ctrl+ 滚轮放大时间轴找到冲突聚集的时间点,再用右键"最近 Tensor"确认重叠对象,最后结合计算图查看这两个 Tensor 对应哪两个节点,就能判断是否需要调整 Tiling 或中间变量布局。

冲突是如何被检测出来的 🔍

视图会自动扫描所有内存块并输出重叠区间:冲突检测逻辑位于 memoryConflictDetection.ts,核心函数detectConflicts按 Region 分组、按起始地址排序后逐块检查重叠,得到overlaps冲突列表。带冲突的 Tensor 会在图上被高亮,让你不必逐个比对地址。

想进一步按执行时间点回放内存分配事件,还可以使用 memory_visualization.md 介绍的"模拟执行内存分配"视图,与 GM 内存可视化互为补充。

相关文件速查 📁

  • 功能文档:docs/zh/computation_graph/gm_memory.md
  • 打开命令注册:src/command/registerCommand.ts
  • 数据加载服务:src/view/servers/gm-memory-visual-server.ts
  • 前端视图组件:media/vue-project/src/components/memoryUsage/
  • 冲突检测算法:media/vue-project/src/components/memoryUsage/memoryConflictDetection.ts

掌握 GM 内存可视化后,你就能从"猜内存去哪了"变成"看图说话",让每一次内存调优都有据可依。

  • 开发工具
  • IDE
  • 数据可视化
  • Ascend

【免费下载链接】pypto-vscode

项目地址:https://gitcode.com/cann/pypto-vscode
点击查看免费下载

相关推荐

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询