Dispatch API는 언제 구현해야 하나요?
특정 하드웨어 가속기 런타임을 LiteRT 프레임워크에 통합해야 하는 경우 LiteRT 디스패치 API가 필요합니다. 컴파일러 플러그인과 함께 작동하여 컴파일러 플러그인에서 내보낸 컴파일된 하위 그래프를 실행합니다.
디스패치 API는 LiteRT가 가속기 런타임과의 세션을 관리하는 데 사용하는 공급업체 구현 함수 집합입니다. 이러한 함수는 기기 세션, 하위 그래프 실행, 호스트와 기기 간 버퍼 이동을 다룹니다. 컴파일러 플러그인과 함께 디스패치 API를 구현하면 LiteRT가 효율적인 추론을 위해 액셀러레이터의 기능을 완전히 활용할 수 있습니다.
디스패치 API (및 컴파일러 플러그인)를 구현해야 하는 '시기'에 관한 자세한 내용은 LiteRT 컴파일러 플러그인 페이지를 참고하세요.
Dispatch API는 어떻게 작동하나요?
Dispatch API는 NpuAccelerator을 사용하는 CompiledModel에 의해 사용됩니다. 이렇게 하면 내부적으로 DispatchDelegate가 생성되며, 이 DispatchDelegate가 디스패치 API를 사용하여 실행 중인 하드웨어에 내장된 NPU를 사용합니다.
디스패치 API 데이터 유형
디스패치 API에서는 다음 데이터 유형이 NPU에서 모델을 실행하는 데 사용됩니다.
DispatchDeviceContextNPU 추론에서 사용할 버퍼를 관리하는 데 사용됩니다.
DispatchInvocationContext모델을 실행하는 데 사용되는 데이터 구조입니다.
DispatchDeviceContext에 등록된 실제 입력 및 출력 메모리를 생성된DispatchGraph와 연결하여 작동합니다.
Dispatch API
Dispatch API의 전체 정의는 vendors/c/litert_dispatch.h 파일을 참고하세요.