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