将后端委托集成到ExecuTorch¶
免责声明:我们计划重新组织仓库结构,围绕委托进行重构。 随着这一变化,其中一些指南在未来可能会发生变化。
这是在将后端委托与 ExecuTorch 集成时的高层次指南。
目录结构¶
委托文件应位于此目录下:
executorch/backends/<delegate_name>/. 委托名称应唯一。
Python 源代码文件¶
委托实现 preprocess() 或 partition()
函数的 Python 文件,用于 ExecuTorch AOT 流程,不包括任何外部第三方依赖及其文件,应与顶级 ExecuTorch 包一起安装并可用。对于第三方依赖,请参阅
此链接。
C++ 源文件¶
至少,一个委托必须提供 CMake 支持以构建其 C++ 源代码。
对于CMake设置,委托目录应通过顶级CMakeLists.txt文件使用add_subdirectory CMake命令包含,并且应该有条件地使用类似EXECUTORCH_BUILD_<DELEGATE_NAME>的ExecuTorch构建标志进行构建,请参阅EXECUTORCH_BUILD_XNNPACK示例。
对于第三方依赖项,请参阅此链接。
测试¶
测试应添加在 executorch/backends/<delegate_name>/test 下。测试可以是Python或C++测试。如需添加更复杂的端到端(e2e)测试,请与我们联系。
常见测试类型:
简单的Python单元测试,用于测试AOT逻辑,例如
partitioner()或AOT 导出流程(从nn.Module生成.pte文件)运行时 C++ 测试,使用 gtest,测试委托
init()或execute()运行时逻辑。
文档¶
一个委托必须包含一个 executorch/backends/<delegate_name>/README.md
解释委托的基本原理、目录结构、功能以及已知问题(如有)。
任何超出上述列表的额外设置步骤应在
executorch/backends/<delegate_name>/setup.md