在 ExecuTorch 中对模型进行剖析¶
ExecuTorch 中的剖析功能使用户能够访问以下运行时指标:
模型加载时间。
操作符级别的执行时间。
委托(Delegate)执行时间。
如果用户调用的委托已与 开发者工具 集成,那么用户还将能够访问委托操作符的执行时间。
端到端推理执行时间。
ExecuTorch 剖析的一个独特之处在于,能够将每个运行时执行的操作符与其源自的确切 Python 代码行关联起来。此功能使用户能够轻松识别模型中的热点,追溯到确切的 Python 代码行,并在需要时进行优化。
我们通过 Python Inspector API 提供对所有剖析数据的访问。上述数据可以通过这些接口访问,使用户能够执行任何他们选择的后续分析。
在 ExecuTorch 中剖析模型的步骤¶
[可选] 在导出模型时生成 ETRecord。如果提供,这将使用户能够将剖析详细信息追溯回原始模型源代码(包括堆栈跟踪和模块层次结构)。
使用启用剖析的预处理器标志构建运行时。详细信息请参阅 ETDump 文档。
在 ExecuTorch 运行时上运行你的程序,并生成 ETDump。
通过将从运行时获取的 ETDump 与步骤 1 中可选生成的 ETRecord 结合,创建 Inspector API 的实例。
通过 Inspector API,用户可以进行广泛的分析,从打印性能详细信息到对模块级别进行更精细粒度的计算。
有关在示例模型上执行上述过程的分步演练,请参阅 开发者工具教程。