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.

Forbered digReferencemodel, input og forventede output
KonverterMålkonfiguration og kontrol af nøjagtighed
ImplementerRuntime, applikation og vedvarende test

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

  1. Match målet. Vælg RK3588-målet og en værktøjskæde, der er kompatibel med det tilsigtede bordbillede.
  2. Undersøg grafen. Bekræft former, forbehandling, output og understøttelse af de faktiske operationer i den eksporterede model.
  3. Byg en referencekonvertering. Brug de præcisionsindstillinger, der understøttes af den pågældende graf og softwareversion.
  4. Læs hele byggeloggen. Løs fejl og undersøg advarsler, før du tilføjer kameraopsamling eller en brugergrænseflade.
  5. 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ålingHvad det svarerHvad skal optages
ModeludførelsesvarighedHvor lang tid tager dette runtime-opkald?Input form, præcision, timing grænser og runtime version
End-to-end latensHvor gammel er observationen, når resultatet er leveret?Registreringstid, forbehandling, kødannelse, inferens og outputtid
Vedvarende gennemstrømningHvor mange færdige resultater leveres over tid?Kørselslængde, gennemførte anmodninger og droppede eller sprungede inputs
AnvendelsesnøjagtighedOpfylder den implementerede model opgavekravet?Valideringssæt, opgavemetrik og beslutningstærskler
Termisk adfærdEr 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

SymptomFørste undersøgelse
Korrekt model, forkerte etiketter eller æskerFarverækkefølge, normalisering, resize/polstring, outputlayout og efterbehandling
Konverteret model kan ikke initialiseresMålvalg, runtime/driver-kompatibilitet og modelartefaktintegritet
Godt kort benchmark, dårlig vedvarende ydeevneTemperatur, strømtilstand, hukommelsestryk og konkurrerende arbejde
Acceptabel slutningstid, synligt forsinkede resultaterCapture buffering, køens alder, kopier og output planlægning
INT8 output mister nyttige registreringerKalibreringsdæ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.