Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

NNAPI驅動程序實施最佳做法

本頁介紹了實現神經網絡API(NNAPI)驅動程序的最佳做法,以允許應用程序開發人員廣泛採用NNAPI。

縮短啟動時間

如果您的驅動程序在首次使用時改變了模型的權重,請確保驅動程序支持編譯緩存,這會減少應用程序啟動時用於編譯的時間。這很重要,因為如果啟動時間過長,應用程序可能會避免使用硬件加速。例如,某些應用程序的權重超過100 MB,每次啟動時進行轉換都會浪費很多。

減少最小延遲

為確保模型使用硬件加速,重要的是減少驅動程序中的最小延遲。許多應用程序使用多次執行的小型模型,並且如果執行工作負載的最小延遲過高(例如幾毫秒),則模型可能會在CPU上運行工作負載,而這只需要一到兩毫秒,而不是使用硬件加速度。注意代價高昂的線程同步。

使用NN HAL SchedTune組

從Android 11或更高版本開始,AOSP包含一個專用的NN HAL SchedTune組,該組允許進程間NN HAL進程使用大內核,類似於預定義的top-app cgroup中的同進程實現。使用此SchedTune組可減少驅動程序開銷,尤其是對於小型機型。

要使用SchedTune組,請將以下行添加到NN HAL進程的init.rc文件中:

writepid /dev/stune/nnapi-hal/tasks