在 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}
格式。