探索和指派裝置

在 Android 10 中,Neural Networks API (NNAPI) 導入了各種功能,可讓機器學習架構程式庫和應用程式取得可用裝置相關資訊,並指定要在哪些裝置上執行模型。透過提供可用裝置的相關資訊,可讓應用程式取得裝置上找到的驅動程式確切版本,進而避免已知的不相容問題。藉由讓應用程式指定哪些裝置要執行模型的不同區段,應用程式就能針對部署的產品進行最佳化。

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

導入作業

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

為每部裝置,按照 types.halDeviceType 指定的類型,將類型指定為下列其中一個類別。

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

IDevice.hal 中實作 getVersionString,取得裝置實作的版本字串。這個方法必須傳回使用者可理解的字串。字串格式因供應商而異,每個新版驅動程式的版本字串必須不同。

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