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 pozyskiwanie 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 pozwala aplikacjom pobrać dokładną wersję sterowników znalezionych na urządzeniu, aby uniknąć znanych problemów ze zgodnością. Dzięki temu aplikacje mogą optymalizować działanie pod kątem produktu, na którym są wdrażane.

Implementacje NN HAL 1.2 wymagają obsługi wykrywania i przypisywania urządzeń.

Implementacja

Aby obsługiwać w NNAPI funkcje wykrywania i przypisywania urządzeń, zaimplementuj getType i getVersionString w IDevice.hal, aby umożliwić platformie pobieranie 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ępnić osobne interfejsy IDevice, które odpowiadają poszczególnym urządzeniom, aby umożliwić aplikacji wybór jednego z tych urządzeń.
  • CPU: jeden rdzeniowy 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}.