將後端委託整合到 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) 測試,請聯絡我們。
常見測試型別
簡單的 Python 單元測試,用於測試 AOT 邏輯,例如
partitioner()或 AOT 匯出流程(從nn.Module生成.pte檔案)。執行時 C++ 測試(使用 gtest),用於測試委託的
init()或execute()執行時邏輯。
文件¶
委託必須包含一個 executorch/backends/<delegate_name>/README.md 檔案,其中解釋了委託的基礎知識、目錄結構、功能以及已知問題(如果有)。
除上述步驟外,任何額外的設定步驟都應在 executorch/backends/<delegate_name>/setup.md 中記錄。