ExecuTorch 开发者工具简介¶
ExecuTorch 的设计以 生产力 作为其核心目标之一,而 ExecuTorch 开发者工具通过其提供的全面工具套件来实现这一点,帮助用户分析、调试和可视化已集成到 ExecuTorch 的模型。
开发者工具的所有组件都是从头开始设计,并在导出过程和运行时深度集成。这使我们能够提供独特的功能,例如将运行时中的运算符执行链接回原始急切模型中此运算符的代码行。
开发者工具功能¶
ExecuTorch 开发者工具支持以下功能
BundledProgram 是一种实用工具,用于导出包含一组示例(代表性)输入和预期输出的模型,以便用户在运行时可以验证实际输出是否与预期输出相同。
分析 具有运算符级别性能统计的模型
将运算符性能统计链接回源代码和模块层次结构
模型加载和执行时间
委托集成 - 从委托后端显示性能详细信息
将委托运算符执行链接回它们在边缘方言图中代表的节点(并随后链接回源代码和模块层次结构)
调试 - 中间输出和输出质量分析
内存分配见解 - 可视化内存的规划方式,以及所有活动张量在任何时间点的存储位置
可视化 - 即将推出
开发者工具的基本组件¶
为了充分理解和利用本节中开发者工具的功能,将详细介绍支持开发者工具的基本组件。
ETRecord¶
ETRecord(ExecuTorch 记录)是在导出过程中生成的一种工件,它存储了开发者工具能够将来自运行时的性能/调试数据链接回急切模型源代码所必需的图和其他元数据。
为了与传统软件开发进行粗略的等价,ETRecord 可以被认为是使用调试符号构建的二进制文件,用于在 GNU 项目调试器 (gdb) 中进行调试。
有关如何生成和存储 ETRecord 的更多详细信息,请参阅 ETRecord 文档。
ETDump¶
ETDump(ExecuTorch 导出)是在运行模型后由运行时生成的二进制 blob。与上面类似,为了与传统软件开发进行粗略的等价,ETDump 可以被认为是 ExecuTorch 的核心转储,但在这种情况下,我们会在 ETDump 中存储运行时在模型执行期间生成的所有性能和调试数据。
注意
如果您只想查看原始性能数据,而无需链接回源代码和其他扩展功能,那么仅使用 ETDump 就足以利用开发者工具的基本功能。要获得完整体验,建议用户还生成 ETRecord。
有关如何从运行时生成和存储 ETDump 的更多详细信息,请参阅 ETDump 文档。
检查器 API¶
检查器 Python API 是进入开发者工具的主要用户入口点。它们将来自 ETDump 和 ETRecord 的数据结合起来,让用户能够访问来自运行时的所有性能和调试数据,以及链接回急切模型源代码和模块层次结构,并提供易于使用的 API。
有关如何使用检查器 API 的更多详细信息,请参阅 检查器 API 文档。