適用於 NPU 執行階段整合的 LiteRT Dispatch API

何時應導入 Dispatch API?

如要將特定硬體加速器執行階段整合至 LiteRT 架構,就必須使用 LiteRT Dispatch API。它會與編譯器外掛程式搭配運作,執行編譯器外掛程式發出的已編譯子圖。

調度 API 是一組供應商實作的函式,LiteRT 會使用這些函式管理加速器執行階段的工作階段。這些函式涵蓋裝置工作階段、子圖執行作業,以及主機和裝置之間的緩衝區移動作業。搭配編譯器外掛程式實作調度 API,可讓 LiteRT 充分運用加速器的功能,有效率地進行推論。

如要進一步瞭解「何時」實作調度 API (和編譯器外掛程式),請參閱 LiteRT 編譯器外掛程式頁面。

Dispatch API 的運作方式

CompiledModel 會使用 NpuAccelerator 呼叫 Dispatch API。這會在內部建立 DispatchDelegate,而這個 DispatchDelegate 會使用 Dispatch API,與執行硬體中內嵌的 NPU 互動。

Dispatch API 資料類型

在 Dispatch API 中,下列資料型別用於在 NPU 上執行模型。

  • DispatchDeviceContext

    用於管理 NPU 推論使用的緩衝區。

  • DispatchInvocationContext

    這是用於執行模型的資料結構。做法是將 DispatchDeviceContext 中註冊的實際輸入和輸出記憶體,與產生的 DispatchGraph 建立關聯。

Dispatch API

如要查看 Dispatch API 的完整定義,請參閱 vendors/c/litert_dispatch.h 檔案。