Praktik terbaik penerapan driver NNAPI

Halaman ini menjelaskan praktik terbaik untuk menerapkan driver Neural Networks API (NNAPI) guna memungkinkan adopsi NNAPI yang luas oleh developer aplikasi.

Mempertahankan waktu startup yang singkat

Jika driver Anda mengubah bobot model saat pertama kali digunakan, pastikan driver mendukung caching kompilasi, yang mengurangi waktu yang digunakan untuk kompilasi saat aplikasi dimulai. Hal ini penting karena aplikasi mungkin menghindari penggunaan akselerasi hardware jika waktu startup terlalu lama. Misalnya, beberapa aplikasi memiliki bobot lebih dari 100 MB dan mengubahnya setiap kali aplikasi diluncurkan akan sia-sia.

Mengurangi latensi minimal

Untuk memastikan model menggunakan akselerasi hardware, penting untuk mengurangi latensi minimal dalam driver. Banyak aplikasi menggunakan model kecil yang dieksekusi beberapa kali dan jika latensi minimal untuk menjalankan beban kerja terlalu tinggi, seperti beberapa milidetik, model mungkin menjalankan beban kerja di CPU, yang hanya memerlukan satu atau dua milidetik, bukan menggunakan akselerasi hardware. Berhati-hatilah dengan sinkronisasi thread yang mahal.

Menggunakan grup NN HAL SchedTune

Mulai Android 11 atau yang lebih baru, AOSP menyertakan grup NN HAL SchedTune khusus yang memungkinkan proses NN HAL antar-proses menggunakan core besar, mirip dengan penerapan dalam proses yang sama dalam top-app cgroupyang telah ditentukan. Menggunakan grup SchedTune ini akan mengurangi overhead driver, terutama untuk model kecil.

Untuk menggunakan grup SchedTune, tambahkan baris berikut ke file init.rc proses NN HAL:

writepid /dev/stune/nnapi-hal/tasks