Nowoczesne urządzenia mobilne i urządzenia brzegowe są wyposażone w wyspecjalizowane procesory graficzne (GPU) i procesory sieci neuronowych (NPU), które mogą przyspieszyć działanie modeli AI nawet 25-krotnie w porównaniu z procesorem, a jednocześnie zmniejszyć zużycie energii nawet 5-krotnie.
LiteRT upraszcza dostęp do tych wyspecjalizowanych układów krzemowych dzięki ujednoliconej warstwie akceleracji sprzętowej. Zamiast zarządzać rozproszonymi pakietami SDK poszczególnych dostawców lub złożonymi interfejsami API sprzętu, LiteRT udostępnia uproszczony interfejs CompiledModel API, który abstrahuje złożoność optymalizacji modelu, zarządzania pamięcią i wysyłania sprzętu.
Rodzaje akceleratorów
LiteRT udostępnia ujednolicony interfejs do wykonywania modeli na różnych platformach sprzętowych. Korzystając z interfejsu CompiledModel API, możesz płynnie przełączać się między tymi akceleratorami za pomocą kompilacji na urządzeniu lub kompilacji z wyprzedzeniem (AOT) z automatycznym przełączaniem na procesor w przypadku nieobsługiwanych operacji.
- CPU:domyślna ścieżka wykonywania z użyciem XNNPACK, która jest zawsze dostępna. Świetnie sprawdza się w przypadku zadań ogólnych i jako opcja rezerwowa dla nieobsługiwanych operatorów.
- GPU: oparty na ML Drift, zapewnia najwyższą wydajność na platformach brzegowych wykorzystujących OpenCL, WebGPU, Metal itp. Więcej informacji znajdziesz w artykule Akceleracja GPU za pomocą LiteRT.
- NPU: najwyższa wydajność i efektywność w przypadku zbiorów zadań AI. LiteRT zapewnia ujednolicony proces programowania, który umożliwia dostęp do specjalistycznych chipsetów NPU, w tym Google Tensor, Qualcomm i MediaTek, bez konieczności integracji pakietów SDK poszczególnych dostawców. Więcej informacji znajdziesz w artykule Akceleracja NPU za pomocą LiteRT.
Akceleratory te można łączyć, aby uzyskać jak najlepszą wydajność, gdy niektóre złożone operacje nie są dostępne na danym sprzęcie. Gdy akceleratory konkurują o operację, LiteRT stosuje następującą kolejność ważności: NPU, GPU, CPU.