Hoe de RK3588 NPU-softwarestack in elkaar past

De RKNN-softwarestack van Rockchip scheidt de modelvoorbereiding en de uitvoering op het apparaat. RKNN-Toolkit2 biedt conversie- en evaluatietools. RKNN-Toolkit-Lite2 levert een Python-interface op ondersteunde doelplatforms, terwijl RKNN Runtime C/C++-interfaces levert. Het kernelstuurprogramma verbindt de runtime met de NPU. Controleer de compatibiliteit van deze componenten met het bordondersteuningspakket dat voor uw module is meegeleverd.

Een nuttig implementatierecord identificeert de bord- en SoM-revisie, de Linux-image, het stuurprogramma, de runtime, de versie van de conversietool, het originele model en het geconverteerde model. Sla het buildscript en de voorverwerkingsinstellingen naast het modelartefact op. Een bestandsnaam zoals detector.rknn alleen kan niet verklaren waarom de ene inzet zich anders gedraagt dan de andere.

Bereid je voorReferentiemodel, inputs en verwachte outputs
ConverterenDoelconfiguratie en nauwkeurigheidscontroles
ImplementerenRuntime, applicatie en langdurig testen

Stap 1: stel vóór de conversie een referentie vast

Voer het originele model uit op een representatieve validatieset. Bewaar onbewerkte output en de toepassingsstatistieken die er toe doen: classificatienauwkeurigheid, detectiekwaliteit of een andere taakspecifieke maatstaf. Voor een detector geldt dat u de labelvolgorde, betrouwbaarheidsdrempels en nabewerkingsinstellingen moet behouden. Dit wordt het vergelijkingspunt voor het geconverteerde model.

Schrijf het volledige invoercontract op. Vermeld afmetingen, batchgrootte, RGB- of BGR-volgorde, lay-out, numeriek bereik, normalisatie, formaatwijziging en opvulling. Een correct model kan slechte resultaten opleveren als de toepassing een afbeelding op een andere manier in de brievenbus plaatst dan bij de training, of als er tweemaal een offset wordt afgetrokken. Houd de nabewerking buiten het netwerk net zo zorgvuldig gedocumenteerd.

Gebruik Rockchip's RKNN Modeldierentuin als uitgangspunt wanneer er sprake is van een passend model en doelstelling. De voorbeelden van conversie en gevolgtrekking zijn nuttiger dan de veronderstelling dat elk geëxporteerd netwerk onveranderd zal werken. Selecteer een bekende repositoryrevisie en volg de instructies voor dat specifieke voorbeeld.

Stap 2: converteer het model en controleer de operatorondersteuning

  1. Overeenkomen met het doel. Selecteer het RK3588-doel en een toolchain die compatibel is met de beoogde bordafbeelding.
  2. Inspecteer de grafiek. Bevestig vormen, voorbewerking, uitvoer en ondersteuning voor de daadwerkelijke bewerkingen in het geëxporteerde model.
  3. Bouw een referentieconversie. Gebruik de precisieopties die door die grafiek en softwareversie worden ondersteund.
  4. Lees het volledige buildlogboek. Los fouten op en onderzoek waarschuwingen voordat u camera-acquisitie of een gebruikersinterface toevoegt.
  5. Vergelijk uitgangen. Voer dezelfde invoer door de originele en geconverteerde modellen, met dezelfde nabewerking.

Voor een niet-ondersteunde bewerking is mogelijk een andere export, herschrijving van grafieken of een expliciete CPU-verwerkingsfase vereist. Ga er niet van uit dat de runtime elke niet-ondersteunde laag transparant zal uitvoeren. Als een deel van de werklast naar de CPU verschuift, neem dan overdrachten en synchronisatie mee in de prestatiemeting.

Stap 3: evalueer INT8 aan de hand van uw nauwkeurigheidseis

Kwantisering verandert de numerieke representatie. Wanneer de geselecteerde conversiestroom kalibratiegegevens gebruikt, kiest u invoer die representatief is voor de implementatie: verlichting, objectgrootte, achtergrond en bedrijfsomstandigheden. Bewaar een aparte validatieset om het resultaat te evalueren. Een conversie die succesvol is voltooid, heeft nog steeds een nauwkeurigheidscontrole nodig.

Vergelijk de applicatie-uitvoer, niet alleen het verschil tussen twee tensoren. Een kleine numerieke verandering kan een detectie bijvoorbeeld over een betrouwbaarheidsdrempel bewegen. Inspecteer moeilijke gevallen, klassen met weinig voorbeelden en omstandigheden waarin het oorspronkelijke model al marginaal was. Als de nauwkeurigheid onder de acceptatielimiet valt, bekijk dan de kalibratiedekking en voorbewerking opnieuw voordat u de hardware wijzigt.

De ONNX Runtime-kwantiseringsdocumentatie is nuttige achtergrondinformatie over numerieke afwegingen en nauwkeurigheidsonderzoek. RKNN-conversieopties en ondersteunde precisie moeten nog steeds worden gecontroleerd in de eigen documentatie van Rockchip voor de geselecteerde release.

Stap 4: meet meer dan alleen de inferentietijd

Meet de ingezette werklast na de warming-up en opnieuw tijdens een langdurige run. Registreer temperatuur, energiemodus, gelijktijdige processen en de behuizing of koelopstelling. Het bruikbare resultaat is een reproduceerbaar prestatiebereik, inclusief nauwkeurigheid en vertraging, onder de omstandigheden waarin het product zal werken.

MetingWat het antwoordtWat op te nemen
Uitvoeringsduur van het modelHoe lang duurt deze runtime-oproep?Invoervorm, precisie, timinggrenzen en runtimeversie
End-to-end latentieHoe oud is de waarneming op het moment dat het resultaat wordt opgeleverd?Leg tijd, voorverwerking, wachtrijen, gevolgtrekkingen en uitvoertijd vast
Aanhoudende doorvoerHoeveel voltooide resultaten worden er in de loop van de tijd opgeleverd?Runlengte, voltooide verzoeken en verwijderde of overgeslagen invoer
Nauwkeurigheid van toepassingVoldoet het ingezette model aan de taakvereiste?Validatieset, taakmetriek en beslissingsdrempels
Thermisch gedragIs het resultaat stabiel nadat het systeem is opgewarmd?Omgevingsomstandigheden, koeling, temperaturen en klokken, indien beschikbaar

Ter illustratie: een applicatie die elke 40 ms een nieuw frame ontvangt, moet de 25-frames per seconde bijhouden als elk frame wordt verwerkt. Een 12 ms-inferentiemeting zou de rest van dat budget alleen overlaten voor aanschaf, voorbereiding en levering in een passend gepland ontwerp. Het bewijst geen 12 ms camera-tot-resultaat vertraging. Deze cijfers zijn een planningsvoorbeeld en niet de gemeten ForgeEdge-prestaties.

Gebruik een monotone klok voor de duur van software. Rapporteer mediaan- en staartlatentie in plaats van één beste waarneming, en bewaar de onbewerkte metingen. Houd bij meerdere camera's rekening met de werklast van alle actieve streams, inclusief decodering, beeldconversie, geheugenverplaatsing en opname. Een wachtrij die tijdens de test groeit, geeft aan dat de gemiddelde capaciteit onder de inkomende werklast ligt.

Veel voorkomende implementatiesymptomen

SymptoomEerste onderzoek
Correct model, onjuiste labels of dozenKleurvolgorde, normalisatie, formaat/opvulling, uitvoerindeling en nabewerking
Het geconverteerde model kan niet worden geïnitialiseerdDoelselectie, compatibiliteit van runtime/drivers en integriteit van modelartefacten
Goede korte benchmark, slechte duurzame prestatiesTemperatuur, energiemodus, geheugendruk en concurrerend werk
Aanvaardbare inferentietijd, zichtbaar vertraagde resultatenLeg buffering, wachtrijleeftijd, kopieën en uitvoerplanning vast
INT8-uitvoer verliest nuttige detectiesKalibratiedekking, gelijkwaardigheid van voorverwerking en validatie op taakniveau

Verander het prototype in een herhaalbaar product

Verpak het model, de runtime en de applicatieconfiguratie als een gecontroleerde release. Definieer opstartcontroles, foutrapportage, herstel en een terugdraaipad. Houd een kleine referentie-invoertest bij die een onjuiste implementatie kan identificeren voordat een camera wordt aangesloten. Scheid die softwarecontrole van de fysieke sensor-test, waarbij ook de bekabeling, stuurprogramma's en belichtingsinstellingen worden getest.

Als het bord andere connectoren, stroomconditionering of sensor-interfaces nodig heeft, bekijk dan de SoM versus SBC-beslissing en de draagprint-ontwerpproces. Deze beslissingen bepalen hoe een succesvolle modeldemonstratie een onderhoudbaar systeem wordt.

RK3588 NPU implementatievragen

Kan elk ONNX-model op de RK3588 NPU draaien?

Compatibiliteit hangt af van de daadwerkelijke grafiek, vormen, bewerkingen en geselecteerde toolchain. Zorg voor ondersteuning via conversie en validatie op het apparaat van het model dat u wilt verzenden.

Voorspelt een geadverteerde versnellerbeoordeling de FPS van de toepassing?

Nee. Het netwerk, de precisie, het geheugengedrag, de voorbewerking en de runtime bepalen de gemeten doorvoer van de applicatie. Gebruik de doelwerklast en het volledige gegevenspad bij het vergelijken van platforms.

Moet ik eerst het neurale netwerk optimaliseren?

Eerst profileren. Als acquisitie, beeldconversie of wachtrijen domineren, kan het verkorten van de uitvoeringstijd van het model weinig effect hebben op de resultaatleeftijd die de toepassing ervaart.

Benchmark de volledige computer vision-taak

Voor een objectdetectietoepassing meet u de camera-opname, het formaat en de normalisatie, de NPU-inferentie, de uitvoerdecodering en de levering van de beslissing. Rapporteer de modelversie, invoerresolutie, precisie, betrouwbaarheidsdrempel en evaluatiegegevensset met het timingresultaat. Anders kunnen twee ogenschijnlijk vergelijkbare edge-AI-benchmarks verschillende taken beschrijven.

Test de geëxporteerde grafiek en de vereiste operators via de geselecteerde RKNN-toolchain voordat u zich aan een modelarchitectuur vastlegt. Controleer de nauwkeurigheid na kwantisering en het gedrag tijdens duurzame uitvoering, niet alleen of de conversie slaagt. Objectdetectie, segmentatie en classificatie brengen verschillende outputverwerkingskosten met zich mee; valideer de daadwerkelijke werklast die voor het project is gekozen.

Vergelijk de ontwerprollen FPGA, NPU en MPU

Technische referenties

Bereik uw edge AI-werklast.

Deel het model, de invoerresolutie, camera-interfaces, het vereiste resultaatpercentage en het vermogensbereik. We kunnen de integratiewerkzaamheden rond een op RK3588 gebaseerd edge-platform beoordelen.