目录

ExecuTorch 中的内存规划检查

在 ExecuTorch 的内存规划过程之后,内存分配信息将存储在 .在这里,我们展示了一个工具,旨在检查内存分配并可视化所有活动的张量对象。

用法

用户应在调用 to_executorch() 后添加此代码,它会将存储在节点上的内存分配信息写入文件路径 “memory_profile.json”。该文件与 Chrome 跟踪查看器兼容;有关解释结果的更多信息,请参阅下文。

from executorch.util.activation_memory_profiler import generate_memory_trace
generate_memory_trace(
    executorch_program_manager=prog,
    chrome_trace_filename="memory_profile.json",
    enable_memory_offsets=True,
)
  • progto_executorch() 返回的 , 的实例。

  • 设置为 可显示每个张量在内存空间上的位置。enable_memory_offsetsTrue

Chrome 跟踪

打开 Chrome 浏览器选项卡并导航到 chrome://tracing/。上传生成的 view 。 MobileNet V2 模型示例:.json

内存规划 Chrome 跟踪可视化

请注意,由于我们正在重新利用 Chrome 跟踪工具,因此与您之前可能遇到的其他 Chrome 跟踪图相比,此上下文中的轴可能具有不同的含义:

  • 水平轴尽管以秒 (s) 为单位进行标记,但实际上表示兆字节 (MB)。

  • 纵轴具有 2 级层次结构。第一级 “pid” 表示内存空间。对于 CPU,所有内容都分配在一个 “空间” 上;其他后端可能有多个。在第二级中,每行代表一个时间步长。由于节点将按顺序执行,因此每个节点代表一个时间步长,因此您将拥有与行数一样多的节点。

延伸阅读

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源