整合後端委派至 ExecuTorch¶
免責聲明:我們計畫重組圍繞委派的儲存庫。因此,其中一些指南將在未來發生變化。
這是一個整合後端委派至 ExecuTorch 的高階指南。
目錄結構¶
委派檔案應位於此目錄下: executorch/backends/<delegate_name>/
。委派名稱應是唯一的。
Python 原始碼檔案¶
委派 Python 檔案,例如那些為 ExecuTorch AOT 流程實現 preprocess()
或 partition()
函數的檔案,不包括任何外部第三方依賴項及其檔案,應與頂層 ExecuTorch 套件一起安裝並可用。 關於第三方依賴項,請參閱此處。
C++ 原始碼檔案¶
委派至少必須提供 CMake 支援以建置其 C++ 原始碼。
對於 CMake 設定,頂層 CMakeLists.txt
檔案應使用 add_subdirectory
CMake 命令包含委派目錄,並且應使用 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
中