LiteRT Dispatch API for NPU Runtime Integration

Kiedy należy wdrożyć interfejs Dispatch API?

Interfejs LiteRT Dispatch API jest niezbędny, gdy chcesz zintegrować konkretny akcelerator sprzętowy z platformą LiteRT. Współpracuje z wtyczką kompilatora, aby wykonywać skompilowane podgrafy emitowane przez wtyczkę kompilatora.

Interfejs API wysyłania to zestaw funkcji zaimplementowanych przez dostawcę, których LiteRT będzie używać do zarządzania sesją z czasem działania akceleratora. Obejmują one sesje urządzenia, wykonywanie podgrafów i przenoszenie buforów między hostem a urządzeniem. Implementacje interfejsu API wysyłania w połączeniu z wtyczką kompilatora umożliwiają LiteRT pełne wykorzystanie możliwości akceleratora w celu wydajnego wnioskowania.

Więcej informacji o tym, „kiedy” wdrożyć interfejs Dispatch API (i wtyczkę kompilatora), znajdziesz na stronie LiteRT Compiler Plugin.

Jak działa interfejs Dispatch API?

Interfejs Dispatch API jest używany przez CompiledModel za pomocą NpuAccelerator. Wewnętrznie tworzy to DispatchDelegate, które za pomocą interfejsu Dispatch API wchodzi w interakcję z jednostką NPU wbudowaną w urządzenie.DispatchDelegate

Typy danych interfejsu Dispatch API

W interfejsie Dispatch API do wykonywania modelu na procesorach NPU używane są te typy danych:

  • DispatchDeviceContext

    Służy do zarządzania buforami używanymi przez wnioskowanie NPU.

  • DispatchInvocationContext

    Jest to struktura danych używana do wykonywania modelu. Działa ona na zasadzie powiązania rzeczywistych danych wejściowych i wyjściowych zarejestrowanych w DispatchDeviceContext z wygenerowanymi DispatchGraph.

Interfejsy Dispatch API

Pełną definicję interfejsu Dispatch API znajdziesz w pliku vendors/c/litert_dispatch.h.