API LiteRT Dispatch para integração do ambiente de execução da NPU

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.

  • DispatchDeviceContext

    Ele é usado para gerenciar buffers usados pela inferência da NPU.

  • DispatchInvocationContext

    Essa é a estrutura de dados usada para executar o modelo. Ele funciona associando a memória real de entrada e saída registrada em DispatchDeviceContext ao DispatchGraph gerado.

APIs de envio

Para a definição completa da API Dispatch, consulte o arquivo vendors/c/litert_dispatch.h.