27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main yerine android-latest-release kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
NNAPI sürücü uygulamasıyla ilgili en iyi uygulamalar
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Bu sayfada, NNAPI'nin uygulama geliştiriciler tarafından yaygın olarak benimsenmesine olanak tanımak için NNAPI (NNAPI) sürücülerini uygulamayla ilgili en iyi uygulamalar açıklanmaktadır.
Başlatma sürelerini kısa tutun
Sürücü, bir modeli ilk kullanımda dönüştürüyorsa sürücünün derleme önbelleğe alma özelliğini desteklediğinden emin olun. Bu özellik, uygulama başlatıldığında derleme için kullanılan süreyi azaltır. Başlangıç süreleri çok uzunsa uygulamalar donanım hızlandırmasını kullanmayabileceğinden bu durum önemlidir. Örneğin, bazı uygulamalar 100 MB'tan fazla ağırlığa sahiptir ve bu ağırlıkların uygulama her başlatıldığında dönüştürülmesi gereksizdir.
Minimum gecikmeyi azaltma
Modellerin donanım hızlandırmasını kullanması için sürücülerdeki minimum gecikmeyi azaltmak önemlidir. Birçok uygulama, birden çok kez çalıştırılan küçük modeller kullanır. Bir iş yükünü yürütmek için gereken minimum gecikme çok yüksekse (ör. birkaç milisaniye) modeller, donanım hızlandırmalarını kullanmak yerine iş yükünü CPU'da çalıştırabilir. Bu işlem yalnızca bir veya iki milisaniye sürer. Maliyetli mesaj dizileri senkronizasyonuna dikkat edin.
NN HAL SchedTune grubunu kullanma
Android 11 veya sonraki sürümlerde AOSP, önceden tanımlanmış top-appcgroup içinde aynı işlem uygulamasına benzer şekilde, işlemler arası NN HAL işlemlerinin büyük çekirdekleri kullanmasına olanak tanıyan özel bir NN HAL SchedTune grubu içerir. Bu SchedTune grubunu kullanmak, özellikle küçük modeller için sürücü yükü azaltır.
SchedTune grubunu kullanmak için NN HAL sürecinin init.rc dosyasına aşağıdaki satırı ekleyin:
writepid /dev/stune/nnapi-hal/tasks
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# NNAPI driver implementation best practices\n\n| **Deprecated:** Starting in Android 15, the\n| [NNAPI (NDK API)](https://developer.android.com/ndk/guides/neuralnetworks) is deprecated. The Neural Networks HAL interface\n| continues to be supported.\n|\n| For more information, see the\n| [NNAPI Migration Guide](https://developer.android.com/ndk/guides/neuralnetworks/migration-guide).\n\nThis page describes best practices for implementing Neural Networks API (NNAPI)\ndrivers to allow for broad adoption of the NNAPI by app developers.\n\nKeep startup times short\n------------------------\n\nIf your driver transforms the weights of a model on first use, make sure the\ndriver supports compilation caching, which reduces the time used for compilation\nwhen an app starts. This is important as apps might avoid using hardware\nacceleration if start-up times are too long. For example, some apps have\nmore than 100 MB of weights and transforming these each time the app\nlaunches is wasteful.\n\nReduce minimal latency\n----------------------\n\nTo ensure that models use hardware acceleration, it's important to reduce the\nminimal latency in drivers. Many apps use small models that are executed\nmultiple times and if the minimal latency to execute a workload is too high,\nsuch as a few milliseconds, models might run the workload on the CPU, which only\ntakes one or two milliseconds, instead of\nusing hardware accelerations. Be careful of costly thread synchronization.\n\nUse the NN HAL SchedTune group\n------------------------------\n\nFrom Android 11 or higher, AOSP includes a dedicated\nNN HAL\n[SchedTune](https://android.googlesource.com/kernel/msm/+/android-msm-marlin-3.18-nougat-dr1/Documentation/scheduler/sched-tune.txt)\ngroup that allows interprocess NN HAL processes to use big\ncores, similar to same-process implementation within the predefined\n`top-app` [cgroup](/docs/core/perf/cgroups). Using this\nSchedTune group reduces driver overhead, especially for small models.\n\nTo use the SchedTune group, add the following line to the `init.rc` file of\nthe NN HAL process: \n\n writepid /dev/stune/nnapi-hal/tasks"]]