Hvordan RK3588 NPU softwarestakken passer sammen
Rockchip's RKNN softwarestak adskiller modelforberedelse fra udførelse på enheden. RKNN-Toolkit2 giver konverterings- og evalueringsværktøjer. RKNN-Toolkit-Lite2 leverer en Python-grænseflade på understøttede målplatforme, mens RKNN Runtime leverer C/C++-grænseflader. Kernedriveren forbinder runtime til NPU. Kontroller kompatibiliteten af disse komponenter med kortets supportpakke, der leveres til dit modul.
En nyttig implementeringspost identificerer kortet og SoM-revision, Linux-billede, driver, runtime, version af konverteringsværktøj, original model og konverteret model. Gem build-scriptet og forbehandlingsindstillingerne ved siden af modelartefakten. Et filnavn som f.eks detector.rknn alene kan ikke forklare, hvorfor en implementering opfører sig anderledes end en anden.
Trin 1: Opret en reference før konvertering
Kør den originale model på et repræsentativt valideringssæt. Gem rå output og applikationsmetrikken, der betyder noget: klassificeringsnøjagtighed, detektionskvalitet eller en anden opgavespecifik foranstaltning. For en detektor skal du bevare etiketbestilling, konfidensgrænser og efterbehandlingsindstillinger. Dette bliver sammenligningspunktet for den konverterede model.
Skriv hele inputkontrakten ned. Inkluder dimensioner, batchstørrelse, RGB- eller BGR-bestilling, layout, numerisk område, normalisering, ændring af størrelse og polstring. En korrekt model kan give dårlige resultater, hvis applikationen letterboxes et billede anderledes end træning eller trækker en offset fra to gange. Hold efterbehandling uden for netværket dokumenteret lige så omhyggeligt.
Brug Rockchip'er RKNN Model Zoo som udgangspunkt, når den indeholder en matchende model og mål. Dets konverterings- og inferenseksempler er mere nyttige end at antage, at ethvert eksporteret netværk vil fungere uændret. Vælg en kendt repository revision og følg instruktionerne for det specifikke eksempel.
Trin 2: Konverter modellen og kontroller operatørsupport
- Match målet. Vælg RK3588-målet og en værktøjskæde, der er kompatibel med det tilsigtede bordbillede.
- Undersøg grafen. Bekræft former, forbehandling, output og understøttelse af de faktiske operationer i den eksporterede model.
- Byg en referencekonvertering. Brug de præcisionsindstillinger, der understøttes af den pågældende graf og softwareversion.
- Læs hele byggeloggen. Løs fejl og undersøg advarsler, før du tilføjer kameraopsamling eller en brugergrænseflade.
- Sammenlign output. Kør de samme input gennem de originale og konverterede modeller med den samme efterbehandling.
En ikke-understøttet operation kan kræve en anden eksport, grafomskrivning eller et eksplicit CPU-behandlingstrin. Antag ikke, at kørselstiden gennemsigtigt udfører alle ikke-understøttede lag. Hvis en del af arbejdsbyrden flyttes til CPU'en, skal du inkludere overførsler og synkronisering i ydeevnemålingen.
Trin 3: Evaluer INT8 i forhold til dit nøjagtighedskrav
Kvantisering ændrer numerisk repræsentation. Når det valgte konverteringsflow bruger kalibreringsdata, skal du vælge input, der er repræsentative for implementeringen: belysning, objektstørrelse, baggrund og driftsforhold. Behold et separat valideringssæt for at evaluere resultatet. En konvertering, der gennemføres med succes, kræver stadig en nøjagtighedskontrol.
Sammenlign applikationsoutput, ikke kun forskellen mellem to tensorer. For eksempel kan en lille numerisk ændring flytte en detektion over en konfidensgrænse. Undersøg vanskelige tilfælde, klasser med få eksempler og forhold, hvor den oprindelige model allerede var marginal. Hvis nøjagtigheden falder under acceptgrænsen, skal du gense kalibreringsdækning og forbehandling, før du ændrer hardwaren.
Den ONNX Runtime kvantiseringsdokumentation er nyttig baggrund om numeriske afvejninger og nøjagtighedsundersøgelse. RKNN konverteringsmuligheder og understøttet præcision skal stadig kontrolleres i Rockchips egen dokumentation for den valgte udgivelse.
Trin 4: mål mere end slutningstid
Mål den udfoldede arbejdsbyrde efter opvarmning og igen under et vedvarende løb. Registrer temperatur, strømtilstand, samtidige processer og kabinet eller kølearrangementet. Det nyttige resultat er en reproducerbar ydeevne, inklusive nøjagtighed og forsinkelse, under de forhold, som produktet vil fungere under.
| Måling | Hvad det svarer | Hvad skal optages |
|---|---|---|
| Modeludførelsesvarighed | Hvor lang tid tager dette runtime-opkald? | Input form, præcision, timing grænser og runtime version |
| End-to-end latens | Hvor gammel er observationen, når resultatet er leveret? | Registreringstid, forbehandling, kødannelse, inferens og outputtid |
| Vedvarende gennemstrømning | Hvor mange færdige resultater leveres over tid? | Kørselslængde, gennemførte anmodninger og droppede eller sprungede inputs |
| Anvendelsesnøjagtighed | Opfylder den implementerede model opgavekravet? | Valideringssæt, opgavemetrik og beslutningstærskler |
| Termisk adfærd | Er resultatet stabilt efter at systemet er varmet op? | Omgivelsesforhold, køling, temperaturer og ure, hvor de er tilgængelige |
Som et illustrativt budget skal en applikation, der modtager en ny ramme for hver 40 ms, holde trit med 25 frames per sekund, hvis den behandler hver frame. En 12 ms-inferensmåling ville kun lade resten af dette budget blive til anskaffelse, forberedelse og levering i et passende planlagt design. Det beviser ikke en 12 ms kamera-til-resultat forsinkelse. Disse tal er et planlægningseksempel, ikke målt ForgeEdge ydeevne.
Brug et monotont ur til softwarevarigheder. Rapportér median- og halelatens i stedet for en enkelt bedste observation, og bevar de rå målinger. For flere kameraer skal du tage højde for arbejdsbyrden for alle aktive streams, inklusive afkodning, billedkonvertering, hukommelsesbevægelse og optagelse. En kø, der vokser gennem testen, indikerer, at den gennemsnitlige kapacitet er under den indgående arbejdsbyrde.
Almindelige implementeringssymptomer
| Symptom | Første undersøgelse |
|---|---|
| Korrekt model, forkerte etiketter eller æsker | Farverækkefølge, normalisering, resize/polstring, outputlayout og efterbehandling |
| Konverteret model kan ikke initialiseres | Målvalg, runtime/driver-kompatibilitet og modelartefaktintegritet |
| Godt kort benchmark, dårlig vedvarende ydeevne | Temperatur, strømtilstand, hukommelsestryk og konkurrerende arbejde |
| Acceptabel slutningstid, synligt forsinkede resultater | Capture buffering, køens alder, kopier og output planlægning |
| INT8 output mister nyttige registreringer | Kalibreringsdækning, forbehandlingsækvivalens og validering på opgaveniveau |
Gør prototypen til et gentageligt produkt
Pak modellen, runtime og applikationskonfigurationen som en kontrolleret udgivelse. Definer opstartstjek, fejlrapportering, gendannelse og en tilbagerulningssti. Hold en lille reference-input test, der kan identificere en forkert implementering, før et kamera tilsluttes. Adskil dette softwaretjek fra den fysiske sensortest, som også træner kabler, drivere og eksponeringsindstillinger.
Når kortet har brug for forskellige stik, strømkonditionering eller sensorgrænseflader, skal du gennemgå SoM versus SBC beslutning og den carrier-board designproces. Disse beslutninger bestemmer, hvordan en vellykket modeldemonstration bliver et system, der kan vedligeholdes.
RK3588 NPU implementeringsspørgsmål
Kan alle ONNX-modeller køre på RK3588 NPU?
Kompatibilitet afhænger af den faktiske graf, former, operationer og valgt værktøjskæde. Etabler support gennem konvertering og validering på enheden af den model, du har til hensigt at sende.
Forudsiger en annonceret acceleratorvurdering applikations-FPS?
Nej. Netværket, præcisionen, hukommelsesadfærden, forbehandlingen og runtime bestemmer applikationens målte gennemløb. Brug målarbejdsbelastningen og dens komplette datasti, når du sammenligner platforme.
Skal jeg optimere det neurale netværk først?
Profil først. Hvis anskaffelse, billedkonvertering eller kødannelse dominerer, kan reduktion af modeludførelsestid have ringe effekt på resultatalderen, som applikationen oplever.
Benchmark den komplette computervisionsopgave
For en objektdetekteringsapplikation skal du måle kameraoptagelse, ændre størrelse og normalisering, NPU-inferens, outputafkodning og levering af beslutningen. Rapportér modelversionen, inputopløsning, præcision, konfidensgrænse og evalueringsdatasæt med timingresultatet. Ellers kan to tilsyneladende ens edge AI-benchmarks beskrive forskellige opgaver.
Test den eksporterede graf og de nødvendige operatører gennem den valgte RKNN-værktøjskæde, før du forpligter dig til en modelarkitektur. Tjek nøjagtigheden efter kvantisering og adfærd under vedvarende udførelse, ikke kun om konverteringen lykkes. Objektdetektion, segmentering og klassificering har forskellige output-behandlingsomkostninger; validere den faktiske arbejdsbyrde, der er valgt for projektet.
Sammenlign FPGA, NPU og MPU designroller
Tekniske referencer
Omfang din edge AI-arbejdsbyrde.
Del modellen, input-opløsning, kameragrænseflader, påkrævet resultathastighed og power-envelope. Vi kan vurdere integrationsarbejdet omkring en RK3588-baseret edge-platform.
