在 ExecuTorch 中对模型进行性能分析¶
ExecuTorch 中的性能分析为用户提供了以下运行时指标
模型加载时间。
算子级别执行时间。
Delegate 执行时间。
如果用户调用的 delegate 已与开发者工具集成,则用户还可以访问委托算子的执行时间。
端到端推理执行时间。
ExecuTorch 性能分析的一个独特之处在于,能够将每一个运行时执行的算子追溯到产生该算子的确切 Python 代码行。此功能使用户可以轻松识别模型中的性能瓶颈,追溯到确切的 Python 代码行,并根据需要进行优化。
我们通过 Python 检查器 API 提供对所有性能分析数据的访问。上述数据可以通过这些接口访问,允许用户进行任何他们选择的运行后分析。
在 ExecuTorch 中对模型进行性能分析的步骤¶
[可选] 在导出模型时生成一个ETRecord。如果提供,这将使用户能够将性能分析细节链接回 eager 模式的模型源代码(包括堆栈跟踪和模块层次结构)。
使用启用性能分析的预处理器标志构建运行时。详细信息请参阅ETDump 文档。
在 ExecuTorch 运行时上运行程序并生成一个ETDump。
通过传入从运行时获取的 ETDump 以及步骤 1 中可选生成的 ETRecord,创建一个Inspector API 实例。
通过 Inspector API,用户可以进行广泛的分析,从打印性能详细信息到在模块级别进行更精细的计算。
请参考开发者工具教程,了解上述过程在示例模型上的逐步演示。