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