Wie der NPU-Software-Stack RK3588 zusammenpasst

Der RKNN-Software-Stack von Rockchip trennt die Modellvorbereitung von der Ausführung auf dem Gerät. RKNN-Toolkit2 bietet Konvertierungs- und Auswertungstools. RKNN-Toolkit-Lite2 stellt eine Python-Schnittstelle auf unterstützten Zielplattformen bereit, während RKNN Runtime C/C++-Schnittstellen bereitstellt. Der Kernel-Treiber verbindet die Laufzeit mit der NPU. Überprüfen Sie die Kompatibilität dieser Komponenten mit dem für Ihr Modul mitgelieferten Board-Support-Paket.

Ein nützlicher Bereitstellungsdatensatz identifiziert die Board- und SoM-Revision, das Linux-Image, den Treiber, die Laufzeit, die Version des Konvertierungstools, das Originalmodell und das konvertierte Modell. Speichern Sie das Build-Skript und die Vorverarbeitungseinstellungen neben dem Modellartefakt. Ein Dateiname wie detector.rknn Allein kann nicht erklärt werden, warum sich eine Bereitstellung anders verhält als eine andere.

Bereiten Sie sich vorReferenzmodell, Eingaben und erwartete Ausgaben
KonvertierenZielkonfigurations- und Genauigkeitsprüfungen
BereitstellenLaufzeit-, Anwendungs- und nachhaltige Tests

Schritt 1: Stellen Sie vor der Konvertierung eine Referenz her

Führen Sie das Originalmodell auf einem repräsentativen Validierungssatz aus. Speichern Sie Rohausgaben und die Anwendungsmetrik, auf die es ankommt: Klassifizierungsgenauigkeit, Erkennungsqualität oder ein anderes aufgabenspezifisches Maß. Behalten Sie für einen Detektor die Reihenfolge der Beschriftungen, die Konfidenzschwellen und die Nachbearbeitungseinstellungen bei. Dies wird zum Vergleichspunkt für das konvertierte Modell.

Notieren Sie den gesamten Eingabevertrag. Beziehen Sie Abmessungen, Stapelgröße, RGB- oder BGR-Reihenfolge, Layout, Zahlenbereich, Normalisierung, Größenänderung und Auffüllung ein. Ein korrektes Modell kann zu schlechten Ergebnissen führen, wenn die Anwendung ein Bild anders als beim Training im Letterbox-Format erstellt oder einen Offset zweimal subtrahiert. Ebenso sorgfältig dokumentieren Sie die Nachbearbeitung außerhalb des Netzwerks.

Verwenden Sie Rockchips RKNN-Modellzoo als Ausgangspunkt, wenn es ein passendes Modell und Ziel enthält. Seine Konvertierungs- und Inferenzbeispiele sind nützlicher als die Annahme, dass jedes exportierte Netzwerk unverändert funktioniert. Wählen Sie eine bekannte Repository-Revision aus und befolgen Sie die Anweisungen für dieses spezifische Beispiel.

Schritt 2: Modell konvertieren und Betreiberunterstützung prüfen

  1. Passen Sie das Ziel an. Wählen Sie das RK3588-Ziel und eine Toolchain aus, die mit dem beabsichtigten Board-Image kompatibel ist.
  2. Untersuchen Sie die Grafik. Bestätigen Sie Formen, Vorverarbeitung, Ausgaben und Unterstützung für die tatsächlichen Vorgänge im exportierten Modell.
  3. Erstellen Sie eine Referenzkonvertierung. Verwenden Sie die von diesem Diagramm und dieser Softwareversion unterstützten Präzisionsoptionen.
  4. Lesen Sie das vollständige Build-Protokoll. Beheben Sie Fehler und untersuchen Sie Warnungen, bevor Sie eine Kameraerfassung oder eine Benutzeroberfläche hinzufügen.
  5. Vergleichen Sie die Ausgaben. Führen Sie dieselben Eingaben mit derselben Nachbearbeitung durch das ursprüngliche und das konvertierte Modell.

Ein nicht unterstützter Vorgang erfordert möglicherweise einen anderen Export, ein Umschreiben des Diagramms oder eine explizite CPU-Verarbeitungsstufe. Gehen Sie nicht davon aus, dass die Laufzeit jede nicht unterstützte Ebene transparent ausführt. Wenn ein Teil der Arbeitslast auf die CPU verlagert wird, beziehen Sie Übertragungen und Synchronisierung in die Leistungsmessung ein.

Schritt 3: Bewerten Sie INT8 anhand Ihrer Genauigkeitsanforderung

Die Quantisierung verändert die numerische Darstellung. Wenn der ausgewählte Konvertierungsablauf Kalibrierungsdaten verwendet, wählen Sie Eingaben aus, die für die Bereitstellung repräsentativ sind: Beleuchtung, Objektgröße, Hintergrund und Betriebsbedingungen. Behalten Sie einen separaten Validierungssatz, um das Ergebnis auszuwerten. Eine erfolgreich abgeschlossene Konvertierung erfordert noch eine Genauigkeitsprüfung.

Vergleichen Sie die Anwendungsausgabe, nicht nur die Differenz zwischen zwei Tensoren. Beispielsweise kann eine kleine numerische Änderung dazu führen, dass eine Erkennung einen Konfidenzschwellenwert überschreitet. Untersuchen Sie schwierige Fälle, Klassen mit wenigen Beispielen und Bedingungen, bei denen das ursprüngliche Modell bereits marginal war. Wenn die Genauigkeit unter die Akzeptanzgrenze fällt, überprüfen Sie die Kalibrierungsabdeckung und Vorverarbeitung erneut, bevor Sie die Hardware wechseln.

Die Dokumentation der ONNX-Laufzeitquantisierung ist nützlicher Hintergrund zu numerischen Kompromissen und Genauigkeitsuntersuchungen. Die RKNN-Konvertierungsoptionen und die unterstützte Genauigkeit müssen weiterhin in der Rockchip-eigenen Dokumentation für die ausgewählte Version überprüft werden.

Schritt 4: Messen Sie mehr als die Inferenzzeit

Messen Sie die eingesetzte Arbeitsbelastung nach dem Aufwärmen und erneut während eines Dauerlaufs. Zeichnen Sie Temperatur, Leistungsmodus, gleichzeitige Prozesse und das Gehäuse oder die Kühlanordnung auf. Das nützliche Ergebnis ist ein reproduzierbarer Leistungsbereich, einschließlich Genauigkeit und Verzögerung, unter den Bedingungen, unter denen das Produkt betrieben wird.

MessungWas es antwortetWas soll aufgezeichnet werden?
Dauer der ModellausführungWie lange dauert dieser Laufzeitaufruf?Eingabeform, Präzision, Zeitgrenzen und Laufzeitversion
End-to-End-LatenzWie alt ist die Beobachtung bei Lieferung des Ergebnisses?Erfassen Sie Zeit, Vorverarbeitung, Warteschlange, Inferenz und Ausgabezeit
Anhaltender DurchsatzWie viele abgeschlossene Ergebnisse werden im Laufe der Zeit geliefert?Lauflänge, abgeschlossene Anfragen und verworfene oder übersprungene Eingaben
AnwendungsgenauigkeitErfüllt das bereitgestellte Modell die Aufgabenanforderung?Validierungssatz, Aufgabenmetrik und Entscheidungsschwellenwerte
Thermisches VerhaltenIst das Ergebnis nach dem Aufwärmen des Systems stabil?Umgebungsbedingungen, Kühlung, Temperaturen und Uhren, sofern verfügbar

Als Beispiel: Eine Anwendung, die alle 40 ms einen neuen Frame empfängt, muss mit 25 Frames pro Sekunde Schritt halten, wenn sie jeden Frame verarbeitet. Bei einer 12-ms-Inferenzmessung würde der Rest des Budgets für die Erfassung, Vorbereitung und Lieferung nur in einem entsprechend geplanten Design verbleiben. Eine Verzögerung von 12 ms zwischen Kamera und Ergebnis lässt sich nicht beweisen. Bei diesen Zahlen handelt es sich um Planungsbeispiele und nicht um die Leistung von ForgeEdge.

Verwenden Sie für Software-Dauer einen monotonen Takt. Melden Sie die Median- und Tail-Latenz statt einer einzigen besten Beobachtung und bewahren Sie die Rohmessungen auf. Berücksichtigen Sie bei mehreren Kameras die Arbeitslast aller aktiven Streams, einschließlich Dekodierung, Bildkonvertierung, Speicherverschiebung und Aufzeichnung. Eine Warteschlange, die während des Tests wächst, weist darauf hin, dass die durchschnittliche Kapazität unter der eingehenden Arbeitslast liegt.

Häufige Bereitstellungssymptome

SymptomErste Untersuchung
Richtiges Modell, falsche Etiketten oder KartonsFarbreihenfolge, Normalisierung, Größenänderung/Auffüllung, Ausgabelayout und Nachbearbeitung
Konvertiertes Modell kann nicht initialisiert werdenZielauswahl, Laufzeit-/Treiberkompatibilität und Modellartefaktintegrität
Guter Short-Benchmark, schlechte DauerleistungTemperatur, Leistungsmodus, Speicherdruck und konkurrierende Arbeit
Akzeptable Inferenzzeit, sichtbar verzögerte ErgebnisseErfassen Sie Pufferung, Warteschlangenalter, Kopien und Ausgabeplanung
Bei der INT8-Ausgabe gehen nützliche Erkennungen verlorenKalibrierungsabdeckung, Vorverarbeitungsäquivalenz und Validierung auf Aufgabenebene

Verwandeln Sie den Prototyp in ein wiederholbares Produkt

Verpacken Sie die Modell-, Laufzeit- und Anwendungskonfiguration als kontrollierte Version. Definieren Sie Startprüfungen, Fehlerberichte, Wiederherstellung und einen Rollback-Pfad. Führen Sie einen kleinen Referenz-Eingabetest durch, der eine fehlerhafte Bereitstellung erkennen kann, bevor eine Kamera angeschlossen wird. Trennen Sie diese Softwareprüfung vom physischen Sensortest, bei dem auch Verkabelung, Treiber und Belichtungseinstellungen überprüft werden.

Wenn die Platine andere Anschlüsse, Stromversorgung oder Sensorschnittstellen benötigt, lesen Sie die SoM versus SBC-Entscheidung und die Designprozess für Trägerplatinen. Diese Entscheidungen bestimmen, wie aus einer erfolgreichen Modelldemonstration ein wartbares System wird.

Fragen zur RK3588 NPU-Bereitstellung

Kann jedes ONNX-Modell auf der RK3588 NPU laufen?

Die Kompatibilität hängt vom tatsächlichen Diagramm, den Formen, Operationen und der ausgewählten Toolchain ab. Stellen Sie Support durch Konvertierung und Validierung des Modells auf dem Gerät her, das Sie versenden möchten.

Sagt eine beworbene Beschleunigerbewertung die Anwendungs-FPS voraus?

Nein. Netzwerk, Präzision, Speicherverhalten, Vorverarbeitung und Laufzeit bestimmen den gemessenen Durchsatz der Anwendung. Verwenden Sie beim Plattformvergleich den Ziel-Workload und seinen vollständigen Datenpfad.

Sollte ich zuerst das neuronale Netzwerk optimieren?

Profil zuerst. Wenn Erfassung, Bildkonvertierung oder Warteschlangenbildung vorherrschen, hat eine Reduzierung der Modellausführungszeit möglicherweise nur geringe Auswirkungen auf das Ergebnisalter der Anwendung.

Technische Referenzen

Begrenzen Sie Ihre Edge-KI-Arbeitslast.

Teilen Sie das Modell, die Eingabeauflösung, die Kameraschnittstellen, die erforderliche Ergebnisrate und den Leistungsumfang mit. Wir können die Integrationsarbeit rund um eine RK3588-basierte Edge-Plattform beurteilen.