Praktik terbaik implementasi driver NNAPI

Halaman ini menjelaskan praktik terbaik untuk mengimplementasikan Neural Networks API (NNAPI) driver untuk memungkinkan penggunaan NNAPI secara luas oleh developer aplikasi.

Buat waktu startup tetap singkat

Jika {i>driver<i} Anda mengubah bobot model pada penggunaan pertama, pastikan driver mendukung caching 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 dengan bobot lebih dari 100 MB dan akan mengubahnya setiap kali aplikasi peluncuran akan sia-sia.

Mengurangi latensi minimal

Untuk memastikan bahwa model menggunakan akselerasi hardware, penting untuk mengurangi latensi minimal pada 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

Dari Android 11 atau yang lebih tinggi, AOSP menyertakan layanan NN HAL SchedTune grup yang memungkinkan proses NN HAL antar-proses untuk menggunakan inti, serupa dengan implementasi dengan proses yang sama dalam top-app cgrup. Dengan menggunakan Grup SchedTune mengurangi overhead pengemudi, 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