自 2025 年 3 月 27 日起,我們建議您使用 android-latest-release
而非 aosp-main
建構及貢獻 AOSP。詳情請參閱「Android 開放原始碼計畫變更」。
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
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2022-06-06 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2022-06-06 (世界標準時間)。"],[],[]]