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