本頁說明實作 Neural Networks API (NNAPI) 驅動程式的最佳做法,讓應用程式開發人員廣泛採用 NNAPI。
縮短啟動時間
如果驅動程式在首次使用時轉換模型的權重,請確認驅動程式支援編譯快取,這樣可縮短應用程式啟動時所需的編譯時間。這一點非常重要,因為如果啟動時間過長,應用程式可能避免使用硬體加速功能。舉例來說,有些應用程式的權重超過 100 MB,而且每次應用程式發布時進行轉換都相當浪費資源。
縮短延遲時間
為確保模型使用硬體加速功能,請務必減少驅動程式中的最小延遲時間。許多應用程式會使用多次執行的小型模型,如果執行工作負載的最低延遲時間過高 (例如幾毫秒),模型可能會在 CPU 上執行工作負載 (只需一或兩毫秒),而不是使用硬體加速功能。請小心耗時的執行緒同步作業。
使用 NN HAL SchedTune 群組
在 Android 11 以上版本中,Android 開放原始碼計畫包含專屬的 NN HAL SchedTune 群組,允許處理序 NN HAL 程序使用大型核心,類似預先定義的 top-app
cgroup 中的相同程序實作。使用這個 SchedTune 群組可以減輕驅動程式的負擔,尤其是小型模型。
如要使用 SchedTune 群組,請將下列程式碼行新增至 NN HAL 程序的 init.rc
檔案:
writepid /dev/stune/nnapi-hal/tasks