Wykrywanie i przypisywanie urządzeń

W Androidzie 10 interfejs Neural Networks API (NNAPI) wprowadza funkcje, które umożliwiają bibliotekom i aplikacjom platformy uczenia maszynowego uzyskiwanie informacji o dostępnych urządzeniach i określanie, na których z nich ma być wykonywany model. Podawanie informacji o dostępnych urządzeniach umożliwia aplikacjom uzyskanie dokładnej wersji sterowników znajdujących się na urządzeniu, aby uniknąć znanych niezgodności. Dzięki możliwości określania przez aplikacje, które urządzenia mają wykonywać różne sekcje modelu, można je zoptymalizować pod kątem produktu, na którym są wdrażane.

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

Implementacja

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

W przypadku każdego urządzenia określ typ jako jedną z tych kategorii, zgodnie z opisem w DeviceTypetypes.hal.

  • OTHER: urządzenie, które nie należy do żadnej z pozostałych kategorii, w tym interfejs heterogeniczny, czyli pojedynczy interfejs IDevice, który zarządza wieloma urządzeniami, być może różnego typu. Sterownik z heterogenicznym interfejsem powinien też udostępniać osobne interfejsy IDevice odpowiadające poszczególnym urządzeniom, aby aplikacja mogła wybierać spośród nich.
  • CPU: procesor jedno- lub wielordzeniowy.
  • GPU: procesor graficzny, który może uruchamiać modele NNAPI i przyspieszać działanie interfejsów API grafiki, takich jak OpenGL ES i Vulkan.
  • ACCELERATOR: dedykowana jednostka przetwarzania neuronowego (NPU);

Zaimplementuj getVersionStringIDevice.hal, aby uzyskać ciąg znaków wersji implementacji urządzenia. Ta metoda musi zwracać ciąg znaków zrozumiały dla człowieka. Format ciągu znaków jest specyficzny dla dostawcy. Ciąg znaków wersji musi być inny w przypadku każdej nowej wersji sterownika.

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