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