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