NNAPI sürücüsü uygulamasına yönelik en iyi uygulamalar

Bu sayfada, uygulama geliştiriciler tarafından NNAPI'nin geniş çapta benimsenmesine olanak tanımak için Neural Networks API (NNAPI) sürücülerini uygulamaya yönelik en iyi uygulamalar açıklanmaktadır.

Başlatma sürelerini kısa tutun

Sürücünüz bir modelin ağırlıklarını ilk kullanımda dönüştürüyorsa sürücünün derleme önbelleğe almayı desteklediğinden emin olun. Bu, uygulama başlatıldığında derleme için harcanan süreyi azaltır. Başlatma süreleri çok uzunsa uygulamalar donanım hızlandırma kullanmaktan kaçınabileceğinden bu önemlidir. Örneğin, bazı uygulamalar 100 MB'tan fazla ağırlığa sahiptir ve uygulama her başlatıldığında israf yaratan her seferde bunları dönüştürür.

Minimum gecikmeyi azaltın

Modellerin donanım hızlandırmayı kullanmasını sağlamak için sürücülerdeki minimum gecikmenin azaltılması önemlidir. Birçok uygulama, birden çok kez yürütülen küçük modeller kullanır ve bir iş yükünü yürütmek için minimum gecikme çok yüksek olursa (ör. birkaç milisaniye) modeller, iş yükünü CPU üzerinde çalıştırabilir. Bu işlem, donanım hızlandırma kullanmak yerine yalnızca bir veya iki milisaniye sürer. Yüksek maliyetli ileti dizisi senkronizasyonuna dikkat edin.

NN HAL SchedTune grubunu kullanma

Android 11 veya sonraki sürümleri çalıştıran AOSP, önceden tanımlanmış top-app cgroup içindeki aynı işlem uygulamasına benzer şekilde, ara 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 modellerde sürücü ek yükünü azaltır.

SchedTune grubunu kullanmak için NN HAL işleminin init.rc dosyasına aşağıdaki satırı ekleyin:

writepid /dev/stune/nnapi-hal/tasks