目录

执行张量(ExecuTorch)中的内存规划检查

在 ExecuTorch 的 内存规划 阶段之后,内存分配信息会存储在节点的 ExportedProgram 上。我们提供一个工具,用于检查内存分配并可视化所有活动的张量对象。

使用

用户应在调用 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,
)

Chrome Trace

在Chrome浏览器中打开一个标签页并导航到 chrome://tracing/。上传生成的 .json 以查看。 MobileNet V2 模型的示例:

Memory planning Chrome trace visualization

请注意,由于我们复用了 Chrome 追踪工具,此处的坐标轴含义可能与您之前遇到的其他 Chrome 追踪图有所不同:

  • 横轴尽管标注为秒(s),实际上表示的是兆字节(MB)。

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

进一步阅读

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源