探索和指派裝置

在 Android 10 中,Neural Networks API (NNAPI) 引進了可讓機器學習架構程式庫和應用程式取得可用裝置相關資訊的函式,並指定要執行模型的裝置。透過提供可用裝置相關資訊,可讓應用程式取得裝置上所安裝驅動程式的確切版本,從而避免已知的不相容問題。如果允許應用程式指定要使用哪些裝置執行模型的不同部分,應用程式就能針對自己部署所在的產品進行最佳化。

NN HAL 1.2 實作功能必須支援裝置探索和指派功能。

實作

如要支援 NNAPI 中的裝置探索和指派功能,請在 IDevice.hal 中實作 getTypegetVersionString,讓架構取得裝置類型和驅動程式版本。

針對每部裝置,將類型指定為下列任一類別,如types.hal中的 DeviceType 所述。

  • OTHER不屬於任何其他類別的裝置,包括異質介面,也就是單一 IDevice 介面,可用於管理多個裝置,這些裝置可能屬於不同類型。具有異質介面的驅動程式也應公開與個別裝置相對應的 IDevice 介面,讓應用程式可從這些裝置中選擇。
  • CPU單核心或多核心 CPU。
  • GPU可執行 NNAPI 模型,並加速 OpenGL ES 和 Vulkan 等圖形 API 的 GPU。
  • ACCELERATOR專用神經處理單元 (NPU)。

IDevice.hal 中實作 getVersionString,以便取得裝置實作的版本字串。這個方法必須傳回人類可讀的字串。字串格式因供應商而異。每個新版驅動程式的版本字串都必須不同。

IDevice 介面的名稱必須遵循 {VENDOR}-{DEVICE_NAME} 格式。