Hur RK3588 NPU mjukvarustack passar ihop
Rockchip:s RKNN mjukvarustack skiljer modellberedning från exekvering på enheten. RKNN-Toolkit2 tillhandahåller konverterings- och utvärderingsverktyg. RKNN-Toolkit-Lite2 tillhandahåller ett Python-gränssnitt på målplattformar som stöds, medan RKNN Runtime tillhandahåller C/C++-gränssnitt. Kärndrivrutinen ansluter körtiden till NPU. Kontrollera kompatibiliteten för dessa komponenter med kortstödspaketet som medföljer din modul.
En användbar distributionspost identifierar kortet och SoM-revision, Linux-bild, drivrutin, körtid, version av konverteringsverktyg, originalmodell och konverterad modell. Spara byggskriptet och förbearbetningsinställningarna bredvid modellartefakten. Ett filnamn som t.ex detector.rknn ensam kan inte förklara varför en installation beter sig annorlunda än en annan.
Steg 1: upprätta en referens före konvertering
Kör originalmodellen på ett representativt valideringsset. Spara råa utdata och applikationsmåttet som är viktigt: klassificeringsnoggrannhet, detekteringskvalitet eller annan uppgiftsspecifik åtgärd. För en detektor, bevara etikettordning, konfidensgränser och efterbearbetningsinställningar. Detta blir jämförelsepunkten för den konverterade modellen.
Skriv ner hela ingångskontraktet. Inkludera dimensioner, batchstorlek, RGB- eller BGR-beställning, layout, numeriskt område, normalisering, storleksändring och utfyllnad. En korrekt modell kan ge dåliga resultat om applikationen letterboxar en bild annorlunda än träning eller drar av en offset två gånger. Håll efterbehandling utanför nätverket dokumenterad lika noggrant.
Använd Rockchip RKNN Model Zoo som utgångspunkt när den inkluderar en matchande modell och mål. Dess omvandlings- och slutledningsexempel är mer användbara än att anta att något exporterat nätverk kommer att fungera oförändrat. Välj en känd repositoryrevision och följ instruktionerna för det specifika exemplet.
Steg 2: konvertera modellen och kontrollera operatörsstöd
- Matcha målet. Välj RK3588-målet och en verktygskedja som är kompatibel med den avsedda brädbilden.
- Inspektera grafen. Bekräfta former, förbearbetning, utdata och stöd för de faktiska operationerna i den exporterade modellen.
- Bygg en referenskonvertering. Använd precisionsalternativen som stöds av den grafen och mjukvaruversionen.
- Läs hela byggloggen. Lös fel och undersök varningar innan du lägger till kamerainsamling eller ett användargränssnitt.
- Jämför utgångar. Kör samma indata genom de ursprungliga och konverterade modellerna, med samma efterbearbetning.
En operation som inte stöds kan kräva en annan export, grafomskrivning eller ett explicit CPU-bearbetningssteg. Anta inte att körtiden kommer att köra alla lager som inte stöds på ett transparent sätt. Om en del av arbetsbelastningen flyttas till CPU, inkludera överföringar och synkronisering i prestandamätningen.
Steg 3: utvärdera INT8 mot ditt noggrannhetskrav
Kvantisering ändrar numerisk representation. När det valda konverteringsflödet använder kalibreringsdata, välj ingångar som är representativa för driftsättningen: belysning, objektstorlek, bakgrund och driftsförhållanden. Behåll en separat valideringsuppsättning för att utvärdera resultatet. En konvertering som slutförs framgångsrikt behöver fortfarande en noggrannhetskontroll.
Jämför applikationens utdata, inte bara skillnaden mellan två tensorer. Till exempel kan en liten numerisk förändring flytta en detektering över en konfidensgräns. Inspektera svåra fall, klasser med få exempel och förhållanden där den ursprungliga modellen redan var marginell. Om noggrannheten faller under acceptansgränsen, se över kalibreringstäckningen och förbearbetningen innan du byter hårdvara.
Den ONNX Runtime-kvantiseringsdokumentation är användbar bakgrund om numeriska avvägningar och noggrannhetsundersökningar. RKNN konverteringsalternativ och precision som stöds måste fortfarande kontrolleras i Rockchips egen dokumentation för den valda versionen.
Steg 4: mät mer än slutledningstid
Mät den utplacerade arbetsbelastningen efter uppvärmning och igen under en ihållande löpning. Registrera temperatur, effektläge, samtidiga processer och kapsling eller kylarrangemang. Det användbara resultatet är ett reproducerbart prestandaomslag, inklusive noggrannhet och fördröjning, under de förhållanden som produkten kommer att fungera under.
| Mätning | Vad den svarar | Vad som ska spelas in |
|---|---|---|
| Modellens utförande varaktighet | Hur lång tid tar detta körtidsanrop? | Ingångsform, precision, tidsgränser och körtidsversion |
| End-to-end latens | Hur gammal är observationen när resultatet levereras? | Fånga tid, förbearbetning, köbildning, slutledning och utmatningstid |
| Uthållig genomströmning | Hur många slutförda resultat levereras över tiden? | Körlängd, slutförda förfrågningar och tappade eller överhoppade ingångar |
| Applikationsnoggrannhet | Uppfyller den utplacerade modellen uppgiftskravet? | Valideringsuppsättning, uppgiftsmått och beslutströsklar |
| Termiskt beteende | Är resultatet stabilt efter att systemet värmts upp? | Omgivningsförhållanden, kyla, temperaturer och klockor där det finns |
Som en illustrativ budget måste en applikation som tar emot en ny bildruta varje 40 ms hålla jämna steg med 25 bilder per sekund om den bearbetar varje bildruta. En 12 ms slutledningsmätning skulle lämna resten av den budgeten för anskaffning, förberedelse och leverans endast i en lämpligt planerad design. Det bevisar inte en 12 ms kamera-till-resultat fördröjning. Dessa siffror är ett planeringsexempel, inte mätt ForgeEdge prestanda.
Använd en monoton klocka för programvaraktighet. Rapportera median- och svanslatens snarare än en enda bästa observation, och bevara de råa mätningarna. För flera kameror, ta hänsyn till arbetsbelastningen för alla aktiva strömmar, inklusive avkodning, bildkonvertering, minnesrörelse och inspelning. En kö som växer under hela testet indikerar att den genomsnittliga kapaciteten ligger under den inkommande arbetsbelastningen.
Vanliga utplaceringssymptom
| Symptom | Första utredningen |
|---|---|
| Rätt modell, felaktiga etiketter eller kartonger | Färgordning, normalisering, storleksändring/utfyllnad, utgångslayout och efterbearbetning |
| Den konverterade modellen kan inte initieras | Målval, körtid/drivrutinkompatibilitet och modellartefaktintegritet |
| Bra kort riktmärke, dålig hållbar prestanda | Temperatur, effektläge, minnestryck och konkurrerande arbete |
| Acceptabel slutledningstid, synbart försenade resultat | Capture buffring, köålder, kopior och utdataschemaläggning |
| INT8-utgång förlorar användbara detekteringar | Kalibreringstäckning, förbearbetningsekvivalens och validering på uppgiftsnivå |
Förvandla prototypen till en repeterbar produkt
Paketera modellen, körtiden och applikationskonfigurationen som en kontrollerad version. Definiera startkontroller, felrapportering, återställning och en återställningsväg. Håll ett litet referens-ingångstest som kan identifiera en felaktig implementering innan en kamera ansluts. Separera den mjukvarukontrollen från det fysiska sensor-testet, som också utövar kablage, drivrutiner och exponeringsinställningar.
När kortet behöver olika kontakter, strömkonditionering eller sensor-gränssnitt, se över SoM kontra SBC beslut och den bärarkort designprocess. Dessa beslut avgör hur en framgångsrik modelldemonstration blir ett underhållbart system.
RK3588 NPU distributionsfrågor
Kan alla ONNX-modeller köras på RK3588 NPU?
Kompatibiliteten beror på den faktiska grafen, former, operationer och vald verktygskedja. Upprätta support genom konvertering och validering på enheten av modellen du tänker skicka.
Förutsäger en annonserad acceleratorbetyg applikations FPS?
Nej. Nätverket, precisionen, minnesbeteendet, förbearbetningen och körtiden bestämmer applikationens uppmätta genomströmning. Använd målarbetsbelastningen och dess fullständiga dataväg när du jämför plattformar.
Ska jag optimera det neurala nätverket först?
Profil först. Om förvärv, bildkonvertering eller köbildning dominerar, kan minskad modellexekveringstid ha liten effekt på resultatåldern som applikationen upplever.
Benchmark den kompletta datorseendeuppgiften
För en objektdetekteringsapplikation, mät kamerafångst, storleksändring och normalisering, NPU slutledning, utdataavkodning och leverans av beslutet. Rapportera modellversionen, ingångsupplösning, precision, konfidensgräns och utvärderingsdatauppsättning med timingresultatet. Annars kan två uppenbarligen lika kant AI-riktmärken beskriva olika uppgifter.
Testa den exporterade grafen och nödvändiga operatörer genom den valda RKNN-verktygskedjan innan du bestämmer dig för en modellarkitektur. Kontrollera noggrannheten efter kvantisering och beteende under ihållande utförande, inte bara om konverteringen lyckas. Objektdetektering, segmentering och klassificering har olika utdatabehandlingskostnader; validera den faktiska arbetsbelastningen som valts för projektet.
Jämför FPGA, NPU och MPU designroller
Tekniska referenser
Omfattning din edge AI-arbetsbelastning.
Dela modell, ingångsupplösning, kameragränssnitt, önskad resultatfrekvens och effektomslutning. Vi kan bedöma integrationsarbetet kring en RK3588-baserad edge-plattform.
