Cum se potrivește stiva de software RK3588 NPU
Stiva de software RKNN de la Rockchip separă pregătirea modelului de execuția pe dispozitiv. RKNN-Toolkit2 oferă instrumente de conversie și evaluare. RKNN-Toolkit-Lite2 furnizează o interfață Python pe platformele țintă acceptate, în timp ce RKNN Runtime furnizează interfețe C/C++. Driverul de kernel conectează runtime-ul la NPU. Verificați compatibilitatea acestor componente cu pachetul de suport al plăcii furnizat pentru modulul dumneavoastră.
O înregistrare utilă de implementare identifică placa și revizuirea SoM, imaginea Linux, driverul, timpul de rulare, versiunea instrumentului de conversie, modelul original și modelul convertit. Salvați scriptul de construcție și setările de preprocesare lângă artefactul modelului. Un nume de fișier, cum ar fi detector.rknn singur nu poate explica de ce o implementare se comportă diferit de alta.
Pasul 1: stabiliți o referință înainte de conversie
Rulați modelul original pe un set de validare reprezentativ. Salvați rezultatele brute și metrica aplicației care contează: precizia clasificării, calitatea detectării sau altă măsură specifică sarcinii. Pentru un detector, păstrați ordinea etichetelor, pragurile de încredere și setările de postprocesare. Acesta devine punctul de comparație pentru modelul convertit.
Notați întregul contract de intrare. Includeți dimensiunile, dimensiunea lotului, comanda RGB sau BGR, aspectul, intervalul numeric, normalizarea, redimensionarea și umplutura. Un model corect poate produce rezultate slabe dacă aplicația introduce o imagine diferit de antrenament sau scade un offset de două ori. Păstrați documentate postprocesarea în afara rețelei la fel de atent.
Utilizați Rockchip RKNN Model Zoo ca punct de plecare atunci când include un model de potrivire și o țintă. Exemplele sale de conversie și inferență sunt mai utile decât presupunerea că orice rețea exportată va funcționa neschimbată. Selectați o versiune de depozit cunoscută și urmați instrucțiunile pentru acel exemplu specific.
Pasul 2: convertiți modelul și verificați suportul operatorului
- Potriviți ținta. Selectați ținta RK3588 și un lanț de instrumente compatibil cu imaginea plăcii dorită.
- Inspectați graficul. Confirmați formele, preprocesarea, ieșirile și suportul pentru operațiunile reale în modelul exportat.
- Creați o conversie de referință. Utilizați opțiunile de precizie acceptate de graficul respectiv și versiunea software.
- Citiți jurnalul de construcție complet. Rezolvați defecțiunile și investigați avertismentele înainte de a adăuga achiziția camerei sau o interfață cu utilizatorul.
- Comparați ieșirile. Rulați aceleași intrări prin modelele originale și convertite, cu aceeași postprocesare.
O operațiune neacceptată poate necesita un alt export, rescrierea graficului sau o etapă explicită de procesare a CPU. Nu presupuneți că timpul de execuție va executa în mod transparent fiecare strat neacceptat. Dacă o parte din volumul de muncă se mută la CPU, includeți transferurile și sincronizarea în măsurarea performanței.
Pasul 3: evaluați INT8 în raport cu cerințele dvs. de precizie
Cuantizarea modifică reprezentarea numerică. Când fluxul de conversie selectat utilizează date de calibrare, alegeți intrări reprezentative pentru implementare: iluminare, dimensiunea obiectului, fundal și condiții de funcționare. Păstrați un set de validare separat pentru a evalua rezultatul. O conversie care se finalizează cu succes necesită încă o verificare a preciziei.
Comparați rezultatul aplicației, nu numai diferența dintre doi tensori. De exemplu, o mică modificare numerică poate muta o detecție peste un prag de încredere. Inspectați cazuri dificile, clase cu puține exemple și condiții în care modelul original era deja marginal. Dacă precizia scade sub limita de acceptare, revizuiți acoperirea calibrării și preprocesarea înainte de a schimba hardware-ul.
The ONNX Documentația de cuantificare a timpului de rulare este un fundal util pentru compromisuri numerice și investigarea acurateței. Opțiunile de conversie RKNN și precizia acceptată trebuie încă verificate în documentația Rockchip pentru versiunea selectată.
Pasul 4: măsurați mai mult decât timpul de inferență
Măsurați volumul de lucru implementat după încălzire și din nou în timpul unei rulări susținute. Înregistrați temperatura, modul de alimentare, procesele concurente și incinta sau aranjamentul de răcire. Rezultatul util este o performanță reproductibilă, inclusiv precizie și întârziere, în condițiile în care produsul va funcționa.
| Măsurare | Ceea ce răspunde | Ce să înregistrezi |
|---|---|---|
| Durata de execuție a modelului | Cât durează acest apel de rulare? | Forma de intrare, precizia, limitele de sincronizare și versiunea de rulare |
| Latență de la capăt la capăt | Cât de veche are observația când se obține rezultatul? | Timp de captare, preprocesare, coadă, inferență și timp de ieșire |
| Debit susținut | Câte rezultate finalizate sunt livrate în timp? | Lungimea execuției, cererile finalizate și intrările abandonate sau ignorate |
| Precizia aplicației | Modelul implementat îndeplinește cerințele sarcinii? | Set de validare, metrica sarcinii și praguri de decizie |
| Comportament termic | Este rezultatul stabil după ce sistemul se încălzește? | Condiții ambientale, răcire, temperaturi și ceasuri, acolo unde sunt disponibile |
Ca un buget ilustrativ, o aplicație care primește un nou cadru la fiecare 40 ms trebuie să țină pasul cu 25 cadre pe secundă dacă procesează fiecare cadru. O măsurătoare de inferență 12 ms ar lăsa restul bugetului pentru achiziție, pregătire și livrare doar într-un design programat corespunzător. Nu dovedește o întârziere de la camera la rezultat 12 ms. Aceste numere sunt un exemplu de planificare, nu sunt măsurate performanța ForgeEdge.
Utilizați un ceas monoton pentru duratele software. Raportați mediana și latența finală, mai degrabă decât o singură observație bună și păstrați măsurătorile brute. Pentru mai multe camere, luați în considerare volumul de lucru al tuturor fluxurilor active, inclusiv decodarea, conversia imaginilor, mișcarea memoriei și înregistrarea. O coadă care crește pe parcursul testului indică faptul că capacitatea medie este sub volumul de lucru primit.
Simptome comune de desfășurare
| Simptom | Prima investigatie |
|---|---|
| Model corect, etichete sau cutii incorecte | Ordinea culorilor, normalizare, redimensionare/completare, aspect de ieșire și postprocesare |
| Modelul convertit nu se poate inițializa | Selecția țintei, compatibilitatea timpului de rulare/driver și integritatea artefactelor modelului |
| Benchmark scurt bun, performanță slabă susținută | Temperatura, modul de putere, presiunea memoriei și lucrul concurent |
| Timp de inferență acceptabil, rezultate vizibil întârziate | Buffering-ul de captură, vârsta cozii, copiile și programarea ieșirii |
| Ieșirea INT8 pierde detecțiile utile | Acoperirea calibrării, echivalența preprocesării și validarea la nivel de sarcină |
Transformați prototipul într-un produs repetabil
Pachetați modelul, timpul de execuție și configurația aplicației ca o versiune controlată. Definiți verificările de pornire, raportarea erorilor, recuperarea și o cale de derulare. Păstrați un mic test de intrare de referință care poate identifica o implementare incorectă înainte ca o cameră să fie conectată. Separați verificarea software-ului de testul senzorului fizic, care exercită și setările de cablare, drivere și expunere.
Când placa are nevoie de conectori diferiți, de condiționare de alimentare sau de interfețe de senzori, revizuiți Decizia SoM versus SBC iar cel placa de bază pentru un proces de proiectare a unui modul de calcul. Aceste decizii determină modul în care o demonstrație de succes a modelului devine un sistem care poate fi întreținut.
RK3588 NPU întrebări despre implementare
Fiecare model ONNX poate rula pe RK3588 NPU?
Compatibilitatea depinde de graficul real, formele, operațiile și lanțul de instrumente selectat. Stabiliți suport prin conversie și validare pe dispozitiv a modelului pe care intenționați să îl expediați.
O evaluare a acceleratorului anunțată prezice FPS-ul aplicației?
Nu. Rețeaua, precizia, comportamentul memoriei, preprocesarea și timpul de rulare determină debitul măsurat al aplicației. Utilizați volumul de lucru țintă și calea completă a datelor atunci când comparați platformele.
Ar trebui să optimizez mai întâi rețeaua neuronală?
Profilul mai întâi. Dacă domină achiziția, conversia imaginii sau coada de așteptare, reducerea timpului de execuție a modelului poate avea un efect redus asupra vârstei rezultatelor experimentate de aplicație.
Referințe tehnice
Analizați volumul de lucru Edge AI.
Partajați modelul, rezoluția de intrare, interfețele camerei, rata de rezultat necesară și nivelul de putere. Putem evalua munca de integrare în jurul unei platforme bazate pe RK3588 pentru procesare locală.
