Kako se skup softvera RK3588 NPU slaže
Rockchip-ov RKNN softverski skup odvaja pripremu modela od izvođenja na uređaju. RKNN-Toolkit2 pruža alate za konverziju i procjenu. RKNN-Toolkit-Lite2 isporučuje Python sučelje na podržanim ciljnim platformama, dok RKNN Runtime isporučuje C/C++ sučelja. Upravljački program kernela povezuje runtime sa NPU. Provjerite kompatibilnost ovih komponenti s paketom podrške za ploču isporučenom za vaš modul.
Korisni zapis o implementaciji identificira ploču i SoM reviziju, Linux sliku, upravljački program, vrijeme izvođenja, verziju alata za pretvorbu, izvorni model i pretvoreni model. Spremite skriptu za izradu i postavke pretprocesiranja pored artefakta modela. Naziv datoteke kao što je detector.rknn sama ne može objasniti zašto se jedna implementacija ponaša drugačije od druge.
Korak 1: uspostavite referencu prije konverzije
Pokrenite izvorni model na reprezentativnom validacijskom skupu. Spremite neobrađene izlaze i metriku aplikacije koja je bitna: točnost klasifikacije, kvaliteta detekcije ili druga mjera specifična za zadatak. Za detektor sačuvajte redoslijed naljepnica, pragove pouzdanosti i postavke naknadne obrade. To postaje točka usporedbe za pretvoreni model.
Zapišite cijeli ulazni ugovor. Uključite dimenzije, veličinu serije, RGB ili BGR redoslijed, izgled, numerički raspon, normalizaciju, promjenu veličine i ispunu. Ispravan model može proizvesti loše rezultate ako aplikacija sliku u poštanskom sandučiću razlikuje od uvježbavanja ili dva puta oduzme pomak. Naknadnu obradu izvan mreže jednako pažljivo dokumentirajte.
Koristite Rockchip-ove RKNN Model Zoo kao polazište kada uključuje odgovarajući model i cilj. Njegovi primjeri pretvorbe i zaključivanja korisniji su od pretpostavke da će bilo koja izvezena mreža raditi nepromijenjena. Odaberite reviziju poznatog repozitorija i slijedite upute za taj specifični primjer.
Korak 2: pretvorite model i provjerite podršku operatera
- Uskladite metu. Odaberite cilj RK3588 i lanac alata koji je kompatibilan s željenom slikom ploče.
- Pregledajte graf. Potvrdite oblike, pretprocesiranje, izlaze i podršku za stvarne operacije u izvezenom modelu.
- Izgradite referentnu konverziju. Koristite opcije preciznosti koje podržava taj grafikon i verzija softvera.
- Pročitajte cijeli dnevnik izrade. Riješite greške i istražite upozorenja prije dodavanja akvizicije kamere ili korisničkog sučelja.
- Usporedite rezultate. Provedite iste ulaze kroz izvorne i konvertirane modele, s istom naknadnom obradom.
Nepodržana operacija može zahtijevati drugačiji izvoz, prepisivanje grafikona ili eksplicitnu CPU fazu obrade. Nemojte pretpostavljati da će runtime transparentno izvršiti svaki nepodržani sloj. Ako se dio radnog opterećenja premjesti na CPU, uključite prijenose i sinkronizaciju u mjerenje performansi.
Korak 3: procijenite INT8 prema svom zahtjevu točnosti
Kvantizacija mijenja numerički prikaz. Kada odabrani tijek pretvorbe koristi podatke kalibracije, odaberite ulaze koji predstavljaju implementaciju: osvjetljenje, veličina objekta, pozadina i radni uvjeti. Držite zaseban set za provjeru valjanosti za procjenu rezultata. Pretvorba koja se uspješno završi i dalje zahtijeva provjeru točnosti.
Usporedite izlaz aplikacije, a ne samo razliku između dva tenzora. Na primjer, mala brojčana promjena može pomaknuti otkrivanje preko praga pouzdanosti. Pregledajte teške slučajeve, klase s nekoliko primjera i uvjete u kojima je izvorni model već bio marginalan. Ako točnost padne ispod granice prihvatljivosti, ponovno provjerite pokrivenost kalibracije i pretprocesiranje prije promjene hardvera.
The ONNX Dokumentacija o kvantizaciji vremena izvođenja korisna je podloga za numeričke kompromise i istraživanje točnosti. RKNN opcije pretvorbe i podržana preciznost još uvijek se moraju provjeriti u Rockchip vlastitoj dokumentaciji za odabrano izdanje.
Korak 4: izmjerite više od vremena zaključivanja
Izmjerite raspoređeno radno opterećenje nakon zagrijavanja i ponovno tijekom kontinuiranog trčanja. Bilježite temperaturu, način napajanja, istodobne procese i kućište ili raspored hlađenja. Koristan rezultat je reproducibilna omotnica performansi, uključujući točnost i kašnjenje, u uvjetima u kojima će proizvod raditi.
| Mjerenje | Što odgovara | Što snimiti |
|---|---|---|
| Trajanje izvedbe modela | Koliko dugo traje ovaj runtime poziv? | Ulazni oblik, preciznost, vremenske granice i verzija vremena izvođenja |
| Latencija od kraja do kraja | Koliko je staro promatranje kada je rezultat dostavljen? | Vrijeme snimanja, pretprocesiranja, čekanja, zaključivanja i izlaznog vremena |
| Održana propusnost | Koliko je završenih rezultata isporučeno tijekom vremena? | Duljina trčanja, dovršeni zahtjevi i ispušteni ili preskočeni unosi |
| Točnost primjene | Ispunjava li implementirani model zahtjeve zadatka? | Validacijski skup, metrika zadatka i pragovi odluke |
| Toplinsko ponašanje | Je li rezultat stabilan nakon zagrijavanja sustava? | Uvjeti okoline, hlađenje, temperature i satovi gdje su dostupni |
Kao ilustrativni proračun, aplikacija koja prima novi okvir svakih 40 ms mora držati korak sa 25 okvira u sekundi ako obrađuje svaki okvir. Mjerenje inferencije 12 ms ostavilo bi ostatak tog proračuna za nabavu, pripremu i isporuku samo u prikladno planiranom dizajnu. Ne dokazuje 12 ms kašnjenje od kamere do rezultata. Ovi brojevi su primjer planiranja, a ne izmjerena izvedba ForgeEdge.
Koristite monotoni sat za trajanja softvera. Izvijestite o srednjoj i repnoj latenciji umjesto o jednom najboljem opažanju i sačuvajte neobrađena mjerenja. Za nekoliko kamera uzmite u obzir radno opterećenje svih aktivnih tokova, uključujući dekodiranje, pretvorbu slike, kretanje memorije i snimanje. Red čekanja koji raste tijekom testa pokazuje da je prosječni kapacitet ispod dolaznog radnog opterećenja.
Uobičajeni simptomi implementacije
| Simptom | Prva istraga |
|---|---|
| Ispravan model, netočne oznake ili kutije | Redoslijed boja, normalizacija, promjena veličine/ispuna, izlazni izgled i naknadna obrada |
| Konvertirani model ne može se pokrenuti | Izbor cilja, kompatibilnost vremena izvođenja/pokretačkog programa i integritet artefakta modela |
| Dobro kratko mjerilo, loša održiva izvedba | Temperatura, način napajanja, pritisak memorije i konkurentski rad |
| Prihvatljivo vrijeme zaključivanja, vidljivo zakašnjeli rezultati | Spremanje međuspremnika, starost čekanja, kopije i planiranje izlaza |
| Izlaz INT8 gubi korisne detekcije | Pokrivenost kalibracije, ekvivalencija pretprocesiranja i validacija na razini zadatka |
Pretvorite prototip u ponovljivi proizvod
Zapakirajte model, vrijeme izvođenja i konfiguraciju aplikacije kao kontrolirano izdanje. Definirajte provjere pri pokretanju, izvješćivanje o pogreškama, oporavak i putanju vraćanja. Napravite mali referentni test unosa koji može identificirati neispravnu implementaciju prije povezivanja kamere. Odvojite tu provjeru softvera od fizičkog testa senzora, koji također provjerava postavke kablova, upravljačkih programa i ekspozicije.
Kada su ploči potrebni različiti priključci, uređaji za napajanje ili sučelja senzora, pregledajte Odluka SoM protiv SBC i noseća pločica proces dizajna. Te odluke određuju kako uspješna demonstracija modela postaje sustav koji se može održavati.
RK3588 NPU pitanja o implementaciji
Može li svaki model ONNX raditi na RK3588 NPU?
Kompatibilnost ovisi o stvarnom grafikonu, oblicima, operacijama i odabranom lancu alata. Uspostavite podršku pretvorbom i provjerom valjanosti na uređaju modela koji namjeravate isporučiti.
Predviđa li reklamirana ocjena akceleratora FPS aplikacije?
Ne. Mreža, preciznost, ponašanje memorije, pretprocesiranje i vrijeme izvođenja određuju izmjerenu propusnost aplikacije. Upotrijebite ciljano radno opterećenje i njegovu potpunu putanju podataka prilikom usporedbe platformi.
Trebam li prvo optimizirati neuronsku mrežu?
Prvo profil. Ako akvizicija, pretvorba slike ili čekanje dominiraju, smanjenje vremena izvođenja modela može imati mali učinak na starost rezultata koju aplikacija doživljava.
Usporedite kompletan zadatak računalnog vida
Za aplikaciju za otkrivanje objekata, izmjerite snimanje kamerom, promjenu veličine i normalizaciju, NPU zaključivanje, izlazno dekodiranje i donošenje odluke. Izvijestite o verziji modela, rezoluciji unosa, preciznosti, pragu pouzdanosti i skupu podataka o evaluaciji s rezultatom mjerenja vremena. Inače, dva naizgled slična rubna AI mjerila mogu opisivati različite zadatke.
Testirajte izvezeni graf i potrebne operatore kroz odabrani lanac alata RKNN prije nego što se posvetite arhitekturi modela. Provjerite točnost nakon kvantizacije i ponašanje tijekom kontinuiranog izvođenja, a ne samo je li pretvorba uspjela. Detekcija objekata, segmentacija i klasifikacija imaju različite troškove obrade izlaza; potvrditi stvarno radno opterećenje odabrano za projekt.
Usporedite dizajnerske uloge FPGA, NPU i MPU
Tehničke reference
Opseg vašeg rubnog AI radnog opterećenja.
Podijelite model, ulaznu rezoluciju, sučelja kamere, potrebnu stopu rezultata i omotnicu snage. Možemo procijeniti rad na integraciji oko rubne platforme temeljene na RK3588.
