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 temu aplikacje mogą optymalizować działanie pod kątem produktu, na 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ź getType
i getVersionString
w IDevice.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:DeviceType
types.hal
.
OTHER
: urządzenie, które nie pasuje do żadnej z pozostałych kategorii, w tym do heterogenicznego interfejsu, który jest pojedynczym interfejsemIDevice
, zarządzającym wieloma urządzeniami, prawdopodobnie różnych typów. Sterownik z heterogenicznym interfejsem powinien też udostępniać osobne interfejsyIDevice
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ę getVersionString
w IDevice.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 być zgodna z formatem {VENDOR}-{DEVICE_NAME}
.