在 Android 10 中,Neural Networks API (NNAPI) 導入了各種功能,可讓機器學習架構程式庫和應用程式取得可用裝置相關資訊,並指定要在哪些裝置上執行模型。透過提供可用裝置的相關資訊,可讓應用程式取得裝置上找到的驅動程式確切版本,進而避免已知的不相容問題。藉由讓應用程式指定哪些裝置要執行模型的不同區段,應用程式就能針對部署的產品進行最佳化。
NN HAL 1.2 實作必須支援探索和指派裝置功能。
導入作業
如要支援 NNAPI 的裝置探索和指派功能,請在 IDevice.hal
中實作 getType
和 getVersionString
,允許架構取得裝置類型和驅動程式版本。
為每部裝置,按照 types.hal
中 DeviceType
指定的類型,將類型指定為下列其中一個類別。
OTHER
:不屬於任何其他類別的裝置,包括異質介面。這類介面是單一IDevice
介面,可管理多部裝置 (可能有多種不同類型的裝置)。使用異質介面的驅動程式也應顯示與個別裝置對應的獨立IDevice
介面,以便應用程式選擇這些裝置。CPU
:單一核心或多核心 CPU。GPU
:可執行 NNAPI 模型並加速 OpenGL ES 和 Vulkan 等圖形 API 的 GPU。ACCELERATOR
:專屬的類神經處理器 (NPU)。
在 IDevice.hal
中實作 getVersionString
,取得裝置實作的版本字串。這個方法必須傳回使用者可理解的字串。字串格式因供應商而異,每個新版驅動程式的版本字串必須不同。
IDevice
介面名稱必須遵循 {VENDOR}-{DEVICE_NAME}
格式。