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 文档。