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