NNAPI 驅動程式實作最佳做法

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

縮短啟動時間

如果驅動程式在首次使用時轉換模型的權重,請確認驅動程式支援編譯快取,這樣可縮短應用程式啟動時所需的編譯時間。這點很重要,因為如果應用程式啟動時間過長,可能會避免使用硬體加速功能。舉例來說,有些應用程式會產生超過 100 MB 的權重,每次啟動應用程式時轉換這些權重會造成資源浪費。

縮短延遲時間

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

使用 NN HAL SchedTune 群組

從 Android 11 以上版本開始,AOSP 包含專屬的 NN HAL SchedTune 群組,可讓跨程序 NN HAL 程序使用大核心,類似於預先定義 top-app cgroup 中的同程序實作。使用這個 SchedTune 群組可減少驅動程式負擔,特別是小型模型。

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

writepid /dev/stune/nnapi-hal/tasks