Integrating a Backend Delegate into ExecuTorch (original) (raw)

Disclaimer: We are planning to restructure the repository around delegates. With that some of these guidelines will change in the future.

This is a high level guideline when integrating a backend delegate with ExecuTorch.

Directory Structure#

Delegate files should be under this directory:executorch/backends/<delegate_name>/. The delegate name should be unique.

Python Source Files#

Delegate Python files such as those implementing preprocess() or partition()functions for ExecuTorch AOT flow, excluding any external third-party dependencies and their files, should be installed and available with the top level ExecuTorch package. For third-party dependencies, please refer tothis.

C++ Source Files#

At a minimum, a delegate must provide CMake support for building its C++ sources.

For the CMake setup:

For third-party dependencies, please refer to this.

Tests#

Tests should be added under executorch/backends/<delegate_name>/test. Tests can be either python or C++ tests. For adding more complex end-to-end (e2e) tests, please reach out to us.

Common test types:

Documentation#

A delegate must include: