目录

ExecuTorch 开发人员工具简介

ExecuTorch 的设计将生产力作为其核心目标之一,而 ExecuTorch 开发人员工具通过为用户提供的全面工具套件来实现这一目标,帮助他们分析、调试和可视化已载入 ExecuTorch 的模型。

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

开发人员工具功能

ExecuTorch 开发人员工具支持以下功能:

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

  • 分析模型,其中包含性能统计信息的操作员级别细分

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

    • 模型加载和执行时间

  • 委托集成 - 从委托后端显示性能详细信息

    • 将 delegate 运算符执行链接回它们在 Edge dialect 图中表示的节点(随后链接回源代码和模块层次结构)

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

  • 内存分配见解 - 可视化内存的规划方式,所有活动张量在任何时间点都处于何处

  • 可视化 - 即将推出

开发人员工具的基本组件

为了充分理解和利用本节中 Developer Tools 的强大功能,将详细介绍为 Developer Tools 提供支持的基本组件。

ETRecord

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

与传统软件开发大致等同,ETRecord 可以被视为使用调试符号构建的二进制文件,用于在 GNU 项目调试器 (gdb) 中进行调试。

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

ETDump

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

注意

如果您只关心查看原始性能数据,而不链接回源代码和其他广泛的功能,那么仅 ETDump 就足以利用 Developer Tools 的基本功能。为了获得完整的体验,建议用户同时生成 ETRecord。

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

检查器 API

Inspector Python API 是开发人员工具的主要用户入口。它们将来自 ETDump 和 ETRecord 的数据加入在一起,使用户能够访问来自运行时的所有性能和调试数据,并在易于使用的 API 中链接回 Eager 模型源代码和模块层次结构。

有关如何使用 Inspector API 的更多详细信息,请参阅 Inspector API 文档

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源