RK3588 NPU yazılım yığını birbirine nasıl uyar?
Rockchip'in RKNN yazılım yığını, model hazırlığını cihazdaki uygulamadan ayırır. RKNN-Toolkit2, dönüştürme ve değerlendirme araçları sağlar. RKNN-Toolkit-Lite2, desteklenen hedef platformlarda bir Python arayüzü sağlarken, RKNN Runtime, C/C++ arayüzleri sağlar. Çekirdek sürücüsü çalışma zamanını NPU'ya bağlar. Bu bileşenlerin modülünüz için sağlanan kart destek paketiyle uyumluluğunu kontrol edin.
Yararlı bir dağıtım kaydı, anakartı ve SoM revizyonunu, Linux görüntüsünü, sürücüyü, çalışma zamanını, dönüştürme aracı sürümünü, orijinal modeli ve dönüştürülen modeli tanımlar. Derleme betiğini ve ön işleme ayarlarını model yapıtının yanına kaydedin. Gibi bir dosya adı detector.rknn bir konuşlandırmanın neden diğerinden farklı davrandığını tek başına açıklayamaz.
Adım 1: dönüştürmeden önce bir referans oluşturun
Orijinal modeli temsili bir doğrulama kümesinde çalıştırın. Ham çıktıları ve önemli olan uygulama metriğini kaydedin: sınıflandırma doğruluğu, algılama kalitesi veya göreve özel başka bir ölçüm. Bir dedektör için etiket sırasını, güven eşiklerini ve işleme sonrası ayarlarını koruyun. Bu, dönüştürülen model için karşılaştırma noktası haline gelir.
Giriş sözleşmesinin tamamını yazın. Boyutları, parti boyutunu, RGB veya BGR sıralamasını, düzeni, sayısal aralığı, normalleştirmeyi, yeniden boyutlandırmayı ve dolguyu ekleyin. Doğru bir model, uygulama posta kutularına bir görüntüyü eğitimden farklı bir şekilde yerleştirirse veya bir uzaklığı iki kez çıkarırsa kötü sonuçlar üretebilir. Ağ dışında yapılan son işlemleri de aynı derecede dikkatli bir şekilde belgelendirin.
Rockchip'i kullanın RKNN Model Hayvanat Bahçesi eşleşen bir model ve hedef içerdiğinde başlangıç noktası olarak. Dönüştürme ve çıkarım örnekleri, dışa aktarılan herhangi bir ağın değişmeden çalışacağını varsaymaktan daha kullanışlıdır. Bilinen bir depo revizyonunu seçin ve söz konusu örneğe ilişkin talimatları izleyin.
Adım 2: Modeli dönüştürün ve işleç desteğini kontrol edin
- Hedefi eşleştirin. RK3588 hedefini ve amaçlanan kart görüntüsüyle uyumlu bir araç zincirini seçin.
- Grafiği inceleyin. Dışa aktarılan modeldeki gerçek işlemler için şekilleri, ön işlemeyi, çıktıları ve desteği onaylayın.
- Bir referans dönüşümü oluşturun. Söz konusu grafiğin ve yazılım sürümünün desteklediği hassaslık seçeneklerini kullanın.
- Yapı günlüğünün tamamını okuyun. Kamera alımını veya kullanıcı arayüzünü eklemeden önce arızaları çözün ve uyarıları araştırın.
- Çıktıları karşılaştırın. Aynı girdileri orijinal ve dönüştürülmüş modellerde aynı son işlemlerle çalıştırın.
Desteklenmeyen bir işlem, farklı bir dışa aktarma, grafiğin yeniden yazılması veya açık bir CPU işleme aşaması gerektirebilir. Çalışma zamanının desteklenmeyen her katmanı şeffaf bir şekilde yürüteceğini varsaymayın. İş yükünün bir kısmı CPU'ya taşınıyorsa, performans ölçümüne aktarımları ve senkronizasyonu dahil edin.
3. Adım: INT8'i doğruluk gereksiniminize göre değerlendirin
Kuantizasyon sayısal temsili değiştirir. Seçilen dönüşüm akışı kalibrasyon verilerini kullandığında, dağıtımı temsil eden girdileri seçin: aydınlatma, nesne boyutu, arka plan ve çalışma koşulları. Sonucu değerlendirmek için ayrı bir doğrulama seti tutun. Başarıyla tamamlanan bir dönüşümün yine de doğruluk kontrolüne ihtiyacı vardır.
Yalnızca iki tensör arasındaki farkı değil, uygulama çıktısını da karşılaştırın. Örneğin, küçük bir sayısal değişiklik, bir tespitin güven eşiğini geçmesine neden olabilir. Zor durumları, birkaç örnek içeren sınıfları ve orijinal modelin zaten marjinal olduğu koşulları inceleyin. Doğruluk kabul sınırının altına düşerse donanımı değiştirmeden önce kalibrasyon kapsamını ve ön işlemeyi yeniden gözden geçirin.
ONNX Çalışma Zamanı niceleme belgeleri sayısal değiş tokuşlar ve doğruluk araştırmaları için yararlı bir arka plandır. RKNN dönüştürme seçenekleri ve desteklenen hassasiyet, seçilen sürüm için yine de Rockchip'in kendi belgelerinde kontrol edilmelidir.
Adım 4: Çıkarım süresinden daha fazlasını ölçün
Isındıktan sonra ve uzun süreli bir çalışma sırasında dağıtılan iş yükünü tekrar ölçün. Sıcaklığı, güç modunu, eşzamanlı işlemleri ve muhafaza veya soğutma düzenlemesini kaydedin. Yararlı sonuç, ürünün çalışacağı koşullar altında doğruluk ve gecikme dahil olmak üzere tekrarlanabilir bir performans zarfıdır.
| Ölçüm | Neye cevap veriyor | Ne kaydedilmeli |
|---|---|---|
| Model yürütme süresi | Bu çalışma zamanı çağrısı ne kadar sürer? | Giriş şekli, hassasiyet, zamanlama sınırları ve çalışma zamanı sürümü |
| Uçtan uca gecikme | Sonuç teslim edildiğinde gözlem kaç yaşındadır? | Yakalama süresi, ön işleme, sıraya alma, çıkarım ve çıktı süresi |
| Sürdürülebilir verim | Zaman içinde kaç tane tamamlanmış sonuç teslim ediliyor? | Çalıştırma uzunluğu, tamamlanan istekler ve bırakılan veya atlanan girişler |
| Uygulama doğruluğu | Dağıtılan model görev gereksinimlerini karşılıyor mu? | Doğrulama seti, görev metriği ve karar eşikleri |
| Termal davranış | Sistem ısındıktan sonra sonuç stabil mi? | Mevcut olduğunda ortam koşulları, soğutma, sıcaklıklar ve saatler |
Örnek bir bütçe olarak, her 40 ms'de bir yeni kare alan bir uygulamanın, her kareyi işliyorsa saniyede 25 kareye ayak uydurması gerekir. 12 ms'lik bir çıkarım ölçümü, bütçenin geri kalanını yalnızca uygun şekilde planlanmış bir tasarımda satın alma, hazırlık ve teslimat için bırakacaktır. Bu, kameradan sonuca 12 ms'lik bir gecikmeyi kanıtlamaz. Bu rakamlar bir planlama örneğidir, ForgeEdge performansı ölçülmemiştir.
Yazılım süreleri için monoton bir saat kullanın. Tek bir en iyi gözlem yerine medyan ve kuyruk gecikmesini raporlayın ve ham ölçümleri koruyun. Birkaç kamera için kod çözme, görüntü dönüştürme, bellek hareketi ve kayıt dahil olmak üzere tüm aktif akışların iş yükünü hesaba katın. Test boyunca büyüyen bir kuyruk, ortalama kapasitenin gelen iş yükünün altında olduğunu gösteriyor.
Modeli cihazda çalıştırırken karşılaşılan belirtiler
| Belirti | İlk soruşturma |
|---|---|
| Doğru model, yanlış etiket veya kutular | Renk düzeni, normalleştirme, yeniden boyutlandırma/doldurma, çıktı düzeni ve son işleme |
| Dönüştürülen model başlatılamıyor | Hedef seçimi, çalışma zamanı/sürücü uyumluluğu ve model yapı bütünlüğü |
| Kısa kıyaslama iyi, sürdürülebilir performans zayıf | Sıcaklık, güç modu, hafıza baskısı ve rakip işler |
| Kabul edilebilir çıkarım süresi, gözle görülür şekilde gecikmeli sonuçlar | Ara belleğe almayı, kuyruk yaşını, kopyaları ve çıktı planlamasını yakalayın |
| INT8 çıkışı yararlı tespitleri kaybediyor | Kalibrasyon kapsamı, ön işleme denkliği ve görev düzeyinde doğrulama |
Prototipi tekrarlanabilir bir ürüne dönüştürün
Modeli, çalışma zamanını ve uygulama yapılandırmasını kontrollü sürüm olarak paketleyin. Başlangıç kontrollerini, arıza raporlamayı, kurtarmayı ve geri alma yolunu tanımlayın. Bir kamera bağlanmadan önce yanlış bir dağıtımı tanımlayabilecek küçük bir referans giriş testi tutun. Bu yazılım kontrolünü, kablolamayı, sürücüleri ve pozlama ayarlarını da uygulayan fiziksel sensör testinden ayırın.
Anakartın farklı konektörlere, güç düzenlemeye veya sensör arayüzlerine ihtiyacı olduğunda, SoM ve SBC kararı ve taşıyıcı kart tasarım süreci. Bu kararlar, başarılı bir model gösteriminin nasıl sürdürülebilir bir sistem haline geleceğini belirler.
RK3588 NPU’da model çalıştırma soruları
Her ONNX modeli RK3588 NPU'da çalışabilir mi?
Uyumluluk gerçek grafiğe, şekillere, işlemlere ve seçilen araç zincirine bağlıdır. Göndermeyi düşündüğünüz modelin dönüştürülmesi ve cihaz üzerinde doğrulanması yoluyla destek sağlayın.
Reklamı yapılan bir hızlandırıcı derecelendirmesi uygulamanın FPS'sini tahmin ediyor mu?
Hayır. Ağ, hassasiyet, bellek davranışı, ön işleme ve çalışma süresi, uygulamanın ölçülen verimini belirler. Platformları karşılaştırırken hedef iş yükünü ve onun tam veri yolunu kullanın.
Önce sinir ağını optimize etmeli miyim?
Önce profil. Edinme, görüntü dönüştürme veya sıraya alma baskınsa, model yürütme süresinin azaltılması, uygulamanın yaşadığı sonuç yaşı üzerinde çok az etkiye sahip olabilir.
Teknik referanslar
Edge AI iş yükünüzün kapsamını belirleyin.
Modeli, giriş çözünürlüğünü, kamera arayüzlerini, gerekli sonuç oranını ve güç zarfını paylaşın. Entegrasyon çalışmalarını RK3588 tabanlı bir uç platform etrafında değerlendirebiliriz.
