API de LiteRT Dispatch para la integración del entorno de ejecución de la NPU

¿Cuándo debo implementar la API de Dispatch?

Se necesita una API de LiteRT Dispatch cuando necesitas integrar un entorno de ejecución de acelerador de hardware específico en el framework de LiteRT. Funciona con el complemento de compilador para ejecutar los subgrafos compilados que emite el complemento de compilador.

La API de envío es un conjunto de funciones implementadas por el proveedor que LiteRT usará para administrar una sesión con el tiempo de ejecución de un acelerador. Estas funciones abarcan las sesiones del dispositivo, la ejecución de subgrafos y el movimiento de búferes entre el host y el dispositivo. Las implementaciones de la API de envío, junto con un complemento del compilador, permiten que LiteRT utilice por completo las capacidades de un acelerador para realizar inferencias eficientes.

En la página Complemento del compilador de LiteRT, encontrarás más detalles sobre "cuándo" implementar la API de envío (y el complemento del compilador).

¿Cómo funciona la API de Dispatch?

CompiledModel usa la API de Dispatch a través de NpuAccelerator. Internamente, esto crea un DispatchDelegate, y es este DispatchDelegate el que usa la API de Dispatch para activar la NPU integrada en el hardware en ejecución.

Tipos de datos de la API de Dispatch

En la API de Dispatch, se usan los siguientes tipos de datos para ejecutar un modelo en las NPU.

  • DispatchDeviceContext

    Se usa para administrar los búferes que usa la inferencia de la NPU.

  • DispatchInvocationContext

    Esta es la estructura de datos que se usa para ejecutar el modelo. Funciona asociando la memoria de entrada y salida real registrada en DispatchDeviceContext con el DispatchGraph generado.

APIs de envío

Para obtener la definición completa de la API de Dispatch, consulta el archivo vendors/c/litert_dispatch.h.