Wykrywanie i przypisywanie urządzeń

W systemie Android 10 interfejs Neural Networks API (NNAPI) wprowadza funkcje, które umożliwiają bibliotekom i aplikacjom struktury uczenia maszynowego uzyskiwanie informacji o dostępnych urządzeniach i określanie, na których urządzeniach ma zostać wykonany model. Podanie informacji o dostępnych urządzeniach umożliwia aplikacjom uzyskanie dokładnej wersji sterowników znalezionych na urządzeniu, aby uniknąć znanych niezgodności. Dając aplikacjom możliwość określenia, które urządzenia mają wykonywać różne sekcje modelu, aplikacje można optymalizować pod kątem produktu, w którym są wdrażane.

W przypadku implementacji NN HAL 1.2 wymagana jest obsługa wykrywania i przypisywania urządzeń.

Realizacja

Aby obsługiwać funkcje wykrywania i przypisywania urządzeń w NNAPI, zaimplementuj getType i getVersionString w IDevice.hal , aby umożliwić platformie uzyskanie typu urządzenia i wersji sterownika.

Dla każdego urządzenia określ typ w jednej z następujących kategorii, jak określono w DeviceType w types.hal .

  • OTHER : urządzenie, które nie należy do żadnej innej kategorii, łącznie z interfejsem heterogenicznym, czyli pojedynczym interfejsem IDevice , który zarządza wieloma urządzeniami, być może różnych typów. Sterownik z heterogenicznym interfejsem powinien także udostępniać oddzielne interfejsy IDevice odpowiadające poszczególnym urządzeniom, aby umożliwić aplikacji wybór spośród tych urządzeń.
  • CPU : Jednordzeniowy lub wielordzeniowy procesor.
  • GPU : Procesor graficzny, który może uruchamiać modele NNAPI i przyspieszać interfejsy API grafiki, takie jak OpenGL ES i Vulkan.
  • ACCELERATOR : Dedykowana jednostka przetwarzania neuronowego (NPU).

Zaimplementuj getVersionString w IDevice.hal , aby uzyskać ciąg wersji implementacji urządzenia. Ta metoda musi zwracać ciąg znaków czytelny dla człowieka. Format ciągu zależy od dostawcy. Ciąg wersji musi być inny dla każdej nowej wersji sterownika.

Nazwa interfejsu IDevice musi być zgodna z formatem {VENDOR}-{DEVICE_NAME} .