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.

Wymagane jest obsługiwanie wykrywania i przypisywania urządzeń w przypadku implementacji NN HAL 1.2.

Implementacja

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

W przypadku każdego urządzenia określ jego 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 użytkowników. 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 mieć format {VENDOR}-{DEVICE_NAME}.