Quando devo implementar a API Dispatch?
Uma API LiteRT Dispatch é necessária quando você precisa integrar um tempo de execução de acelerador de hardware específico ao framework LiteRT. Ele funciona com o plug-in do compilador para executar os subgrafos compilados emitidos pelo plug-in do compilador.
A API de envio é um conjunto de funções implementadas pelo fornecedor que o LiteRT usa para gerenciar uma sessão com o tempo de execução de um acelerador. Essas funções abrangem sessões de dispositivos, execução de subgrafos e movimentação de buffers entre o host e o dispositivo. As implementações da API dispatch, em conjunto com um plug-in do compilador, permitem que o LiteRT utilize totalmente os recursos de um acelerador para inferência eficiente.
Para mais detalhes sobre "quando" implementar a API de envio (e o plug-in do compilador), consulte a página Plug-in do compilador LiteRT.
Como a API Dispatch funciona?
A API Dispatch é usada pelo CompiledModel usando o NpuAccelerator. Isso cria internamente um DispatchDelegate, que usa a API Dispatch para ativar a NPU incorporada no hardware em execução.DispatchDelegate
Tipos de dados da API Dispatch
Na API Dispatch, os seguintes tipos de dados são usados para executar um modelo em NPUs.
DispatchDeviceContextEle é usado para gerenciar buffers usados pela inferência da NPU.
DispatchInvocationContextEssa é a estrutura de dados usada para executar o modelo. Ele funciona associando a memória real de entrada e saída registrada em
DispatchDeviceContextaoDispatchGraphgerado.
APIs de envio
Para a definição completa da API Dispatch, consulte o arquivo
vendors/c/litert_dispatch.h.