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.
DispatchDeviceContextViene utilizzato per gestire i buffer utilizzati dall'inferenza della NPU.
DispatchInvocationContextQuesta è la struttura dei dati utilizzata per eseguire il modello. Funziona associando la memoria di input e output effettiva registrata in
DispatchDeviceContextconDispatchGraphgenerato.
Dispatch APIs
Per la definizione completa dell'API Dispatch, consulta il file
vendors/c/litert_dispatch.h.