為配合主幹穩定開發模型,並確保生態系統的平台穩定性,我們將於 2026 年起,在第 2 季和第 4 季將原始碼發布至 AOSP。如要建構及貢獻 AOSP,建議使用 android-latest-release,而非 aosp-main。android-latest-release 資訊清單分支版本一律會參照推送至 AOSP 的最新版本。詳情請參閱「Android 開放原始碼計畫變更」一文。
Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
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 (世界標準時間)。"],[],[]]