Halaman ini menjelaskan praktik terbaik untuk menerapkan driver Neural Networks API (NNAPI) agar NNAPI dapat diadopsi secara luas oleh developer aplikasi.
Memastikan waktu startup tetap singkat
Jika driver Anda mengubah bobot model saat pertama kali digunakan, pastikan driver mendukung penyimpanan dalam cache kompilasi, yang mengurangi waktu yang digunakan untuk kompilasi saat aplikasi dimulai. Hal ini penting karena aplikasi mungkin menghindari penggunaan hardware akselerasi jika waktu {i>start-up<i} terlalu lama. Misalnya, beberapa aplikasi memiliki bobot lebih dari 100 MB dan mengubahnya setiap kali aplikasi diluncurkan akan membuang-buang waktu.
Mengurangi latensi minimal
Untuk memastikan model menggunakan akselerasi hardware, penting untuk mengurangi latensi minimum dalam driver. Banyak aplikasi menggunakan model kecil yang dijalankan beberapa kali dan jika latensi minimal untuk mengeksekusi beban kerja terlalu tinggi, beberapa milidetik, model mungkin menjalankan beban kerja pada CPU, membutuhkan waktu satu atau dua milidetik, menggunakan akselerasi perangkat keras. Berhati-hatilah dengan sinkronisasi thread yang mahal.
Menggunakan grup SchedTune NN HAL
Mulai Android 11 atau yang lebih tinggi, AOSP menyertakan grup
SchedTune
HAL NN
khusus yang memungkinkan proses HAL NN antarproses menggunakan core
besar, mirip dengan implementasi proses yang sama dalam
cgroup top-app
yang telah ditentukan sebelumnya. Menggunakan grup
SchedTune ini akan mengurangi overhead driver, terutama untuk model kecil.
Untuk menggunakan grup SchedTune, tambahkan baris berikut ke file init.rc
dari
proses NN HAL:
writepid /dev/stune/nnapi-hal/tasks