NNAPI sürücü uygulamasıyla ilgili en iyi uygulamalar

Bu sayfada, uygulama geliştiricilerin NNAPI'yi yaygın olarak kullanabilmesi 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 ilk kullanımda bir modelin ağırlıklarını dönüştürüyorsa sürücünün derleme önbelleğe almayı desteklediğinden emin olun. Bu özellik, bir uygulama başlatıldığında derleme için kullanılan süreyi kısaltır. Başlatma süreleri çok uzunsa uygulamalar donanım hızlandırmayı kullanmaktan kaçınabileceğinden bu önemlidir. Örneğin, bazı uygulamaların ağırlıkları 100 MB'tan fazladır ve bu ağırlıkları uygulama her başlatıldığında dönüştürmek gereksizdir.

Minimum gecikmeyi azaltma

Modellerin donanım hızlandırmayı kullanmasını sağlamak için sürücülerdeki minimum gecikmeyi azaltmak önemlidir. Birçok uygulama, birden çok kez yürütülen küçük modeller kullanır. Bir iş yükünü yürütmek için gereken minimum gecikme süresi çok yüksekse (ör. birkaç milisaniye), modeller donanım hızlandırmalarını kullanmak yerine iş yükünü yalnızca bir veya iki milisaniye süren CPU'da çalıştırabilir. Maliyetli iş parçacığı senkronizasyonuna dikkat edin.

NN HAL SchedTune grubunu kullanma

Android 11 veya sonraki sürümlerde AOSP, süreçler arası NN HAL işlemlerinin büyük çekirdekleri kullanmasına olanak tanıyan özel bir NN HAL SchedTune grubu içerir. Bu, önceden tanımlanmış top-app cgroup içindeki aynı süreçli uygulamaya benzer. Bu SchedTune grubunu kullanmak, özellikle küçük modellerde sürücü yükünü 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