探索和指派裝置

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

NN HAL 1.2 實作需要支援裝置探索和指派。

實作

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

針對每部裝置,請將類型指定為下列其中一個類別,如 DeviceTypetypes.hal中所述。

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

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

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