• 文档 >
  • ExecuTorch 开发者工具简介
快捷方式

ExecuTorch 开发者工具简介

ExecuTorch 的核心目标之一是提高生产力,ExecuTorch 开发者工具通过提供全面的工具套件来实现这一目标,帮助用户分析、调试和可视化已移植到 ExecuTorch 的模型。

开发者工具的所有组件都从头开始设计,与导出过程和运行时深度集成。这使我们能够提供独特的功能,例如将运行时中的运算符执行链接回该运算符在原始 Eager 模型中的源代码行。

开发者工具功能

ExecuTorch 开发者工具支持以下功能

  • 捆绑程序 (BundledProgram) 是一个实用工具,用于导出与一组样本(代表性)输入和预期输出捆绑在一起的模型,以便用户在运行时验证实际输出是否与预期输出相同。

  • 性能分析:按运算符级别细分性能统计信息

    • 将运算符性能统计信息链接回源代码和模块层次结构

    • 模型加载和执行时间

  • 委托集成:显示来自委托后端的性能详细信息

    • 将委托运算符执行链接回它们在 Edge 方言图中的节点(然后链接回源代码和模块层次结构)

  • 调试:中间输出和输出质量分析

  • 内存分配洞察:可视化内存规划方式,以及所有活动张量在任何时间点的所在位置

  • 可视化:即将推出

开发者工具的基本组件

为了充分理解和利用本节中开发者工具的功能,将详细介绍驱动开发者工具的基本组件。

ETRecord

ETRecord (ExecuTorch 记录) 是在导出过程中生成的一个工件,它存储了图和其他元数据,这些数据对于开发者工具将来自运行时的性能/调试数据链接回 Eager 模型的源代码至关重要。

为了与传统软件开发进行粗略类比,ETRecord 可以被视为使用调试符号构建的二进制文件,用于 GNU 项目调试器 (gdb) 中的调试。

有关如何生成和存储 ETRecord 的更多详细信息,请参见ETRecord 文档

ETDump

ETDump (ExecuTorch 转储) 是模型运行后由运行时生成的一个二进制块 (binary blob)。与上述类似,为了与传统软件开发进行粗略类比,ETDump 可以被视为 ExecuTorch 的 coredump,但在这种情况下,我们在 ETDump 中存储了运行时在模型执行期间生成的所有性能和调试数据。

注意

如果您只关心查看原始性能数据,而不需要链接回源代码和其他高级功能,则仅有 ETDump 就足以利用开发者工具的基本功能。为了获得完整体验,建议用户同时生成 ETRecord。

有关如何从运行时生成和存储 ETDump 的更多详细信息,请参见ETDump 文档

检查器 API

检查器 Python API 是开发者工具的主要用户入口点。它们将来自 ETDump 和 ETRecord 的数据结合起来,通过易于使用的 API 为用户提供来自运行时的所有性能和调试数据,并链接回 Eager 模型源代码和模块层次结构。

有关如何使用检查器 API 的更多详细信息,请参见检查器 API 文档

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

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

查看教程

资源

查找开发资源并获取问题解答

查看资源