Bagaimana tumpukan perangkat lunak NPU RK3588 cocok satu sama lain
Tumpukan perangkat lunak RKNN Rockchip memisahkan persiapan model dari eksekusi pada perangkat. RKNN-Toolkit2 menyediakan alat konversi dan evaluasi. RKNN-Toolkit-Lite2 menyediakan antarmuka Python pada platform target yang didukung, sementara RKNN Runtime menyediakan antarmuka C/C++. Driver kernel menghubungkan runtime ke NPU. Periksa kompatibilitas komponen ini dengan paket dukungan papan yang disertakan untuk modul Anda.
Catatan penerapan yang berguna mengidentifikasi revisi board dan SoM, image Linux, driver, runtime, versi alat konversi, model asli, dan model yang dikonversi. Simpan skrip build dan pengaturan prapemrosesan di samping artefak model. Nama file seperti detector.rknn sendiri tidak dapat menjelaskan mengapa suatu penerapan berperilaku berbeda dari penerapan lainnya.
Langkah 1: buat referensi sebelum konversi
Jalankan model asli pada set validasi yang representatif. Simpan keluaran mentah dan metrik aplikasi yang penting: akurasi klasifikasi, kualitas deteksi, atau ukuran khusus tugas lainnya. Untuk detektor, pertahankan pengurutan label, ambang batas keyakinan, dan setelan pascapemrosesan. Ini menjadi titik perbandingan model yang dikonversi.
Tuliskan seluruh kontrak masukan. Sertakan dimensi, ukuran batch, pemesanan RGB atau BGR, tata letak, rentang numerik, normalisasi, pengubahan ukuran, dan padding. Model yang benar dapat memberikan hasil yang buruk jika aplikasi mengkotakkan gambar secara berbeda dari pelatihan atau mengurangi offset dua kali. Jaga agar proses pasca-pemrosesan di luar jaringan didokumentasikan dengan hati-hati.
Gunakan Rockchip Kebun Binatang Model RKNN sebagai titik awal ketika mencakup model dan target yang cocok. Contoh konversi dan inferensinya lebih berguna daripada mengasumsikan bahwa jaringan yang diekspor akan berfungsi tanpa perubahan. Pilih revisi repositori yang diketahui dan ikuti instruksi untuk contoh spesifik tersebut.
Langkah 2: konversi model dan periksa dukungan operator
- Cocokkan sasarannya. Pilih target RK3588 dan rantai alat yang kompatibel dengan gambar papan yang diinginkan.
- Periksa grafiknya. Konfirmasikan bentuk, pemrosesan awal, keluaran, dan dukungan untuk operasi sebenarnya dalam model yang diekspor.
- Bangun konversi referensi. Gunakan opsi presisi yang didukung oleh grafik dan versi perangkat lunak tersebut.
- Baca log build lengkap. Atasi kegagalan dan selidiki peringatan sebelum menambahkan akuisisi kamera atau antarmuka pengguna.
- Bandingkan keluaran. Jalankan input yang sama melalui model asli dan model yang dikonversi, dengan postprocessing yang sama.
Operasi yang tidak didukung mungkin memerlukan ekspor berbeda, penulisan ulang grafik, atau tahap pemrosesan CPU eksplisit. Jangan berasumsi bahwa runtime akan mengeksekusi setiap lapisan yang tidak didukung secara transparan. Jika sebagian beban kerja berpindah ke CPU, sertakan transfer dan sinkronisasi dalam pengukuran kinerja.
Langkah 3: evaluasi INT8 terhadap persyaratan akurasi Anda
Kuantisasi mengubah representasi numerik. Ketika alur konversi yang dipilih menggunakan data kalibrasi, pilih input yang mewakili penerapan: pencahayaan, ukuran objek, latar belakang, dan kondisi pengoperasian. Simpan set validasi terpisah untuk mengevaluasi hasilnya. Konversi yang berhasil diselesaikan masih memerlukan pemeriksaan keakuratan.
Bandingkan keluaran aplikasi, bukan hanya perbedaan antara dua tensor. Misalnya, perubahan numerik kecil dapat memindahkan deteksi melintasi ambang batas keyakinan. Periksa kasus-kasus sulit, kelas dengan sedikit contoh dan kondisi di mana model aslinya sudah marginal. Jika akurasi berada di bawah batas penerimaan, tinjau kembali cakupan kalibrasi dan pra-pemrosesan sebelum mengganti perangkat keras.
Dokumentasi kuantisasi ONNX Runtime adalah latar belakang yang berguna mengenai trade-off numerik dan investigasi akurasi. Opsi konversi RKNN dan presisi yang didukung masih harus diperiksa dalam dokumentasi Rockchip sendiri untuk rilis yang dipilih.
Langkah 4: ukur lebih dari waktu inferensi
Ukur beban kerja yang diterapkan setelah pemanasan dan lagi selama lari berkelanjutan. Catat suhu, mode daya, proses bersamaan, dan pengaturan enklosur atau pendinginan. Hasil yang bermanfaat adalah cakupan kinerja yang dapat direproduksi, termasuk akurasi dan penundaan, dalam kondisi di mana produk akan beroperasi.
| Pengukuran | Apa jawabannya | Apa yang harus direkam |
|---|---|---|
| Durasi eksekusi model | Berapa lama waktu yang dibutuhkan untuk panggilan runtime ini? | Bentuk masukan, presisi, batas waktu, dan versi waktu proses |
| Latensi ujung ke ujung | Berapa umur observasi saat hasilnya disampaikan? | Waktu pengambilan, prapemrosesan, antrian, inferensi, dan waktu keluaran |
| Throughput yang berkelanjutan | Berapa banyak hasil lengkap yang disampaikan seiring waktu? | Panjang proses, permintaan yang diselesaikan, dan input yang dihilangkan atau dilewati |
| Akurasi aplikasi | Apakah model yang diterapkan memenuhi persyaratan tugas? | Kumpulan validasi, metrik tugas, dan ambang batas keputusan |
| Perilaku termal | Apakah hasilnya stabil setelah sistem melakukan pemanasan? | Kondisi sekitar, pendinginan, suhu dan jam jika tersedia |
Sebagai ilustrasi anggaran, aplikasi yang menerima frame baru setiap 40 ms harus mengimbangi 25 frame per detik jika memproses setiap frame. Pengukuran inferensi 12 mdtk akan menyisakan sisa anggaran untuk akuisisi, persiapan, dan pengiriman hanya dalam desain terjadwal yang sesuai. Ini tidak membuktikan penundaan kamera-ke-hasil sebesar 12 ms. Angka-angka ini adalah contoh perencanaan, bukan pengukuran kinerja ForgeEdge.
Gunakan jam monoton untuk durasi perangkat lunak. Laporkan latensi median dan ekor, bukan satu observasi terbaik, dan pertahankan pengukuran mentahnya. Untuk beberapa kamera, beban kerja semua aliran aktif diperhitungkan, termasuk decoding, konversi gambar, pergerakan memori, dan perekaman. Antrean yang bertambah sepanjang pengujian menunjukkan bahwa kapasitas rata-rata berada di bawah beban kerja yang masuk.
Gejala penyebaran yang umum
| Gejala | Investigasi pertama |
|---|---|
| Model benar, label atau kotak salah | Urutan warna, normalisasi, pengubahan ukuran/padding, tata letak keluaran, dan pascapemrosesan |
| Model yang dikonversi tidak dapat diinisialisasi | Pemilihan target, kompatibilitas runtime/driver, dan integritas artefak model |
| Tolok ukur pendek yang bagus, kinerja berkelanjutan yang buruk | Suhu, pola makan, tekanan memori, dan pekerjaan yang bersaing |
| Waktu inferensi yang dapat diterima, hasil yang tampak tertunda | Tangkap buffering, usia antrian, salinan dan penjadwalan keluaran |
| Output INT8 kehilangan deteksi yang berguna | Cakupan kalibrasi, kesetaraan pra-pemrosesan, dan validasi tingkat tugas |
Ubah prototipe menjadi produk yang dapat diulang
Kemas model, runtime, dan konfigurasi aplikasi sebagai rilis terkontrol. Tentukan pemeriksaan startup, pelaporan kegagalan, pemulihan, dan jalur rollback. Lakukan tes masukan referensi kecil yang dapat mengidentifikasi penerapan yang salah sebelum kamera dihubungkan. Pisahkan pemeriksaan perangkat lunak tersebut dari pengujian sensor fisik, yang juga melatih pengaturan kabel, driver, dan eksposur.
Jika board memerlukan konektor, pengondisian daya, atau antarmuka sensor yang berbeda, tinjau Keputusan SoM versus SBC dan itu proses desain papan pengangkut. Keputusan-keputusan tersebut menentukan bagaimana demonstrasi model yang sukses menjadi sistem yang dapat dipelihara.
Pertanyaan penerapan NPU RK3588
Bisakah setiap model ONNX berjalan pada NPU RK3588?
Kompatibilitas bergantung pada grafik aktual, bentuk, operasi, dan rantai alat yang dipilih. Membangun dukungan melalui konversi dan validasi pada perangkat dari model yang ingin Anda kirimkan.
Apakah peringkat akselerator yang diiklankan memprediksi FPS aplikasi?
Tidak. Jaringan, presisi, perilaku memori, prapemrosesan, dan waktu proses menentukan throughput aplikasi yang diukur. Gunakan beban kerja target dan jalur data lengkapnya saat membandingkan platform.
Haruskah saya mengoptimalkan jaringan saraf terlebih dahulu?
Profil dulu. Jika akuisisi, konversi gambar, atau antrian mendominasi, pengurangan waktu eksekusi model mungkin berdampak kecil pada usia hasil yang dialami aplikasi.
Referensi teknis
Mencakup beban kerja AI edge Anda.
Bagikan model, resolusi input, antarmuka kamera, tingkat hasil yang diperlukan, dan cakupan daya. Kami dapat menilai upaya integrasi di sekitar platform edge berbasis RK3588.
