Wykrywanie i przypisywanie urządzeń

W Androidzie 10 interfejs Neural Networks API (NNAPI) udostępnia funkcje, które umożliwiają bibliotekom i aplikacjom korzystającym z ramowego oprogramowania uczenia maszynowego uzyskiwanie informacji o dostępnych urządzeniach oraz określanie, na których urządzeniach ma być wykonywany model. Podanie informacji o dostępnych urządzeniach umożliwia aplikacjom pobieranie dokładnej wersji sterowników znalezionych na urządzeniu, aby uniknąć znanych niezgodności. Dzięki możliwości określenia, które urządzenia mają wykonywać różne sekcje modelu, aplikacje mogą być optymalizowane 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ń.

Implementacja

Aby obsługiwać funkcje wykrywania i przypisywania urządzeń w NNAPI, wprowadź getTypegetVersionStringIDevice.hal, aby umożliwić frameworkowi uzyskanie typu urządzenia i wersji sterownika.

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

  • OTHER: urządzenie, które nie pasuje do żadnej z pozostałych kategorii, w tym do heterogenicznego interfejsu, który jest pojedynczym interfejsem IDevicezarządzającym wieloma urządzeniami, prawdopodobnie różnych typów. Sterownik z heterogenicznym interfejsem powinien też udostępniać osobne interfejsy IDevice odpowiadające poszczególnym urządzeniom, aby aplikacja mogła je wybierać.
  • CPU: procesor jedno- lub wielordzeniowy.
  • GPU: procesor graficzny, który może uruchamiać modele NNAPI i przyspieszać interfejsy API do grafiki, takie jak OpenGL ES i Vulkan.
  • ACCELERATOR: dedykowana jednostka przetwarzania neuronowego (NPU).

Zaimplementuj funkcję getVersionStringIDevice.hal, aby pobrać ciąg znaków wersji implementacji urządzenia. Ta metoda musi zwracać ciąg tekstowy zrozumiały dla człowieka. Format ciągu jest specyficzny dla danego 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}.