NNAPI 驅動程式實作最佳做法

本頁說明實作 Neural Networks API (NNAPI) 的最佳做法 驅動程式,讓應用程式開發人員廣泛採用 NNAPI。

縮短啟動時間

若駕駛人在首次使用時轉換模型的權重,請確認 驅動程式支援編譯快取功能,因此能縮短編譯時間 應用程式啟動時。這點非常重要,因為應用程式可能會避免使用硬體 加速速度。舉例來說,有些應用程式 超過 100 MB 的權重,並在應用程式每次使用時進行轉換 會造成浪費

縮短延遲時間

如要確保模型使用硬體加速功能, 可將驅動程式的延遲時間降至最低許多應用程式都使用執行的小型模型 多次,如果執行工作負載所需的最短延遲時間太高 例如幾毫秒,模型可能會在 CPU 上執行工作負載 需要 1 或 2 毫秒的時間 使用硬體加速請務必謹慎執行昂貴的執行緒同步處理作業。

使用 NN HAL SchedTune 群組

在 Android 11 以上版本中,Android 開放原始碼計畫會提供 西北哈拉邦 SchedTune 允許處理 NN HAL 處理程序的 核心,類似預先定義 top-app cgroup。使用此應用程式 SchedTune 群組能減少驅動程式的負荷,尤其是小型模型時。

如要使用 SchedTune 群組,請在以下位置的 init.rc 檔案中新增下列程式碼: NN HAL 程序:

writepid /dev/stune/nnapi-hal/tasks