API LiteRT Dispatch per l'integrazione di NPU Runtime

Quando devo implementare l'API Dispatch?

Un'API LiteRT Dispatch è necessaria quando devi integrare un runtime dell'acceleratore hardware specifico nel framework LiteRT. Funziona con il plug-in del compilatore per eseguire i sottografi compilati emessi dal plug-in del compilatore.

L'API di dispatch è un insieme di funzioni implementate dal fornitore che LiteRT utilizzerà per gestire una sessione con il runtime di un acceleratore. Queste funzioni riguardano le sessioni del dispositivo, l'esecuzione del sottografo e lo spostamento del buffer tra l'host e il dispositivo. Le implementazioni dell'API Dispatch, insieme a un plug-in del compilatore, consentono a LiteRT di utilizzare appieno le funzionalità di un acceleratore per un'inferenza efficiente.

Maggiori dettagli su "quando" implementare l'API Dispatch (e il plug-in del compilatore) sono disponibili nella pagina Plug-in del compilatore LiteRT.

Come funziona l'API Dispatch?

L'API Dispatch viene utilizzata da CompiledModel tramite NpuAccelerator. Questo crea internamente un DispatchDelegate ed è questo DispatchDelegate che utilizza l'API Dispatch per coinvolgere la NPU incorporata nell'hardware in esecuzione.

Tipi di dati dell'API Dispatch

Nell'API Dispatch, i seguenti tipi di dati vengono utilizzati per eseguire un modello sulle NPU.

  • DispatchDeviceContext

    Viene utilizzato per gestire i buffer utilizzati dall'inferenza della NPU.

  • DispatchInvocationContext

    Questa è la struttura dei dati utilizzata per eseguire il modello. Funziona associando la memoria di input e output effettiva registrata in DispatchDeviceContext con DispatchGraph generato.

Dispatch APIs

Per la definizione completa dell'API Dispatch, consulta il file vendors/c/litert_dispatch.h.