Hey! Sie scheinen aus United Kingdom zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

Jetson AGX Orin und Orin Nano im Vergleich Teil 2: Leistung

side-by-side comparison

Ein direkter Vergleich der Flaggschiff- und Einsteigsmodelle der Entwickler-Kits in NVIDIAs neuester und bester Produktfamilie von Embedded-Plattformen für Edge-KI.

In unseren früheren Artikeln haben wir uns die ursprüngliche Plattform des Jetson Nano (basic hands-on and AI follow trolley project), und das Kraftpaket AGX Orin (first look and basic setup) angesehen.

In dieser zweiteiligen Serie wollen wir nun das Entwicklerkit für das Spitzenmodell Jetson AGX Orin mit dem kleineren und viel preiswerteren Jetson Orin Nano vergleichen und gegenüberstellen. Im ersten Teil haben wir uns mit den Funktionen und Spezifikationen der einzelnen Geräte beschäftigt. Im zweiten und abschließenden Artikel führen wir nun einige Beispiel-Workloads aus und vergleichen die relative Leistung der beiden Plattformen.

Einrichtung des Orin Nano

Orin Nano setup

Wir haben uns bereits mit der grundlegenden Einrichtung des AGX Orin (253-9662) befasst und möchten nun ein paar Worte zur Einrichtung des Orin Nano (264-7384) verlieren. Während beim AGX Orin ein fest verlöteter eMMC-Flashspeicher mit einem vorinstallierten Image vorhanden ist, wird der Orin Nano ohne persistenten Speicher ausgeliefert und muss daher mit diesem versehen werden. Z. B. eine Micro-SD-Karte oder eine NVMe-SSD.

Es wird ein Image zur Verfügung gestellt, das auf eine SD-Karte geschrieben werden kann. Bei diesem Vorgang stellten wir jedoch fest, dass der Orin Nano nicht richtig bootete; das NVIDIA-Logo wurde angezeigt und eine Meldung über den Versuch, direkt zu booten, woraufhin der Bildschirm leer blieb und der Lüfter aufhörte, sich zu drehen. Bei der Suche in den Foren wurden Beiträge gefunden, in denen vorgeschlagen wurde, die Methode mit dem SDK-Manager zu verwenden.

Durch die Verwendung von SDK Manager konnten wir auch eine benutzerdefinierte Installation ausprobieren und eine NVMe-SSD verwenden. Eine ausführliche Beschreibung dieses Prozesses ist im Artikel „NVIDIA Jetson Setup Using SDK Manager“ zu finden.

Gleiche Bedingungen für alle

orin-nano software version

Wenn man sich vor Augen führt, dass die AGX Orin Platine über ein Image eingerichtet wurde, das werksseitig auf der eMMC vorinstalliert war, während die Orin Nano Platine erst vor kurzem mit dem SDK Manager konfiguriert wurde, kann man davon ausgehen, dass auf beiden Platinen unterschiedliche Softwareversionen laufen. Obwohl man keinen großen Unterschied erwarten würde, wenn die Versionen nicht zu weit auseinander liegen, sollte man für Leistungsvergleiche beide so nah wie möglich an der gleichen Softwareumgebung laufen lassen.

Nach Ausführung des folgenden Befehls auf dem Orin Nano:

$ cat /etc/nv_tegra_release

erhielten wir die oben abgebildete Ausgabe, die anzeigt, dass wir Jetson Linux 35.4.1 verwenden.

AGX-Orin Software Version

Bei der Ausführung desselben Befehls auf dem AGX Orin-System erhielten wir die obige Ausgabe, die darauf hinweist, dass auf diesem Dev-Kit Jetson Linux 35.2.1, eine etwas ältere Version, läuft.

Beim Verglelich der Datei  /etc/apt/sources.list.d/nvidia-l4t-apt-source.list auf beiden Systemen konnten wir feststellen, dass das Paket-Repository auf dem Orin Nano für die Version r35.4 konfiguriert war. Als wir die gleiche Datei auf dem AGX Orin System überprüften, konnten wir sehen, dass sie für die Version r35.2 konfiguriert war.

Um das Orin AGX-System auf den gleichen Stand wie das Orin Nano-System zu bringen, haben wir die in der oben genannten Datei angegebene Version aktualisiert und dann ein APT-Update und ein Dist-Upgrade durchgeführt, gefolgt von einem Neustart.

$ sudo apt update && sudo apt dist-upgrade && sudo reboot

Die Pakete wurden daraufhin aktualisiert, und der Vorgang schien ohne Fehler abzulaufen.

console display - update progress

Nach dem Neustart zeigte die Konsolenanzeige dann an, dass weitere Aktualisierungen durchgeführt werden.

AGX-Orin Software after update

Beim erneuten Ausführen des Befehls auf dem AGX Orin konnten wir feststellen, dass dieser nun auf Jetson Linux 35.4.1 aktualisiert worden war.

An dieser Stelle fiel uns auf, dass in der Entwicklerdokumentation davor gewarnt wird, ein „OTA-Update“ wie dieses durchzuführen, wenn JetPack installiert ist, und die entsprechende Dokumentation zu Rate zu ziehen. Daraufhin konnte bestätigt werden, dass JetPack zwar auf dem AGX Orin, nicht aber auf dem Orin Nano installiert war.

Nach einem Blick in die JetPack-Upgrade-Dokumentation stellte sich jedoch heraus, dass nur ein zusätzlicher Schritt erforderlich war, um defekte Pakete zu reparieren – wobei die Ausführung dieses Schritts keine Auswirkungen zu haben schien.

Da wir darauf aufmerksam gemacht worden waren, dass auf dem Orin Nano kein JetPack vorhanden war, wurde dieses mit installiert:

 

$ sudo apt install nvidia-jetpack

Zu diesem Zeitpunkt sollten wir nun auf beiden Entwicklungskits dieselbe Softwareumgebung haben.

Schneller Test

Quick test to access the GPU via CUDA

Ein erster kurzer Test, um sicherzustellen, dass wir über CUDA auf die GPU zugreifen können, und um einige Headline-Fähigkeiten zu überprüfen, können wir das deviceQuery-Beispiel erstellen und ausführen, das wir zuvor im Artikel „NVIDIA Jetson AGX Orin – Grundlegende Einrichtung“ behandelt haben. Fragment der oben gezeigten Ausgabe des Orin Nano.

output when we run the same example on the AGX Orin

Hier sehen wir die Ausgabe, wenn wir das gleiche Beispiel auf dem AGX Orin ausführen. Dadurch wird bestätigt, dass wir auf beiden Systemen auf das CUDA-Gerät (GPU) zugreifen können und dass sie die gleichen Treiber- und Runtime-Versionen besitzen. Wir können auch sehen, dass der AGX Orin über viel mehr globalen Speicher verfügt und die maximale Taktfrequenz der GPU fast doppelt so hoch ist. Damit sind aber noch lange nicht alle Unterschiede aufgezeigt, da der AGX Orin gegenüber dem Orin Nano noch eine Reihe weiterer Vorteile bietet, wie z. B. insgesamt 2048 CUDA-Kerne (die hier gezeigte Zahl ist anders) und 64 statt 32 Tensor-Kerne.

KI-Beispiele

Wir führen drei Inferenzbeispiele auf jedem Jetson Dev Kit aus, verarbeiten Videos von einer angeschlossenen USB-Kamera und vergleichen dann die Ergebnisse.

Die Beispiele sind von Hello AI World:

  1. MHP-Modell mit Kamerasegmentierung unter Verwendung des ResNet-18-Netzes.
  2. Hintergrundentfernung mit dem Netz U2-Net.
  3. Kameraerkennung mit dem Modell MobileNetSSDv2.

Bei der ersten Ausführung eines Beispiels kommt es zu einer Verzögerung, bevor die Anwendung startet, da das Modell heruntergeladen, eingerichtet und abgestimmt wird. Dies ist vor allem beim Beispiel der Hintergrundentfernung der Fall, die mit einem der Jetson Orin-Entwicklungskits eine Weile dauert.

Bei diesen Tests verwenden wir eine Live-Kameraübertragung und ziehen einen groben Vergleich der durchschnittlichen Leistung heran. Ein wissenschaftlich fundierterer Test könnte darin bestehen, Videoclips aufzuzeichnen, die in jedem Vergleich verwendet werden, und die Beispiele so zu ändern, dass ein zeitlicher Durchschnitt über die gesamte Laufzeit berechnet wird. In jedem Fall sollte die hier verwendete einfachere Methode ausreichen, um uns einen Hinweis auf die Vergleichsleistung zu geben.

Kamerasegmentierung

Hier geht es darum, einen oder mehrere Menschen im Bild zu finden. Im obigen Video sehen wir einen Vergleich des Beispiels, das auf Jetson Nano und AGX Orin läuft. In der Praxis scheint es auf beiden Systemen gleich gut zu laufen, obwohl die Bildrate mit AGX Orin höher war.

Timing report for Camera Segmentation

Wenn wir die Timing-Berichte vergleichen, sehen wir, dass die gesamte GPU-Verarbeitungszeit mit dem Orin Nano knapp 4 ms beträgt, verglichen mit etwas mehr als 3 ms mit dem AGX Orin. Das ist ziemlich schnell und die GPU wird auch nicht übermäßig beansprucht. Wir sehen auch die CPU-Verarbeitungszeiten und wie zu erwarten, sind diese sehr ähnlich und die GPU erledigt hier die ganze Arbeit.

Hintergrund entfernen

Auch wenn dieses Beispiel recht einfach klingt, gestaltet es sich in der Realität etwas komplizierter als das vorherige Beispiel. Oben sehen wir, wie dies auf beiden Dev-Kits ausgeführt wird, und wieder einmal kommen beide Plattformen hervorragend zurecht. An dieser Stelle sollten wir anmerken, dass die Kameraeinstellung alles andere als ideal war, da viel helles Licht durch das Fenster hinter dem Zielobjekt – dem Autor! – vorhanden war, was, genau wie beim Fotografieren, eine gewisse Herausforderung darstellt.

Timing report for background removal

Beim Vergleich der Timing-Berichte sehen wir diesmal einen viel größeren Unterschied, mit einer Gesamt-GPU-Verarbeitungszeit von ca. 52 ms mit dem Orin Nano gegenüber ~17 ms mit dem AGX Orin – was einer dreifachen Leistungssteigerung entspricht!

Image showing the frame rates in the comparison

Vergleicht man die Framerate, die mit den beiden Dev-Kits erreicht wurde, so bestätigt sich auch hier ein deutlicher Leistungsanstieg, mit etwa 30 FPS für Orin Nano gegenüber 60 FPS für AGX Orin zum Zeitpunkt der Aufnahme der obigen Screenshots. Bitte beachten Sie, dass diese Zahlen, wie auch die Timing-Berichte, mit dem Wechsel der Szene etwas schwanken, es handelt sich also um Richtwerte.

Kamera-Erkennung

Im letzten Beispiel geht es um die Erkennung und Klassifizierung von Objekten. Wir sehen erneut eine exzellente Leistung sowohl bei den Einsteiger- als auch bei den Flaggschiff-Modellen des Jetson Orin Dev-Kits.

Timing report or camera detection

Aus den Timing-Berichten geht hervor, dass AGX Orin eindeutig leistungsfähiger ist, aber wie beim ersten Beispiel ist die gesamte GPU-Verarbeitungszeit sehr gering und der Leistungsunterschied ist nicht ganz so signifikant wie beim Beispiel der Hintergrundentfernung.

Fazit

Die Zielanwendung ist eindeutig ein Schlüsselfaktor, und wenn Sie mit dem Jetson Nano fantastische Leistungen erzielen, werden Sie durch den Umstieg auf den AGX Orin möglicherweise keine herausragenden Leistungssteigerungen verzeichnen. Es kann sogar sein, dass Sie kurz davor stehen, die Daten so schnell wie möglich in und aus dem Grafikprozessor zu schieben, oder dass Engpässe an anderer Stelle liegen, z. B. bei einer Kamera oder einem Datenerfassungssystem.

Wir haben aber nur an der Oberfläche dessen gekratzt, was in Bezug auf KI und weitere CUDA-beschleunigte Anwendungen möglich ist. Wenn diese jedoch extreme Anforderungen an die GPU stellen, werden sie von der zusätzlichen Rechenleistung der AGX Jetson profitieren. Dies zeigt sich sogar bei einer Anwendung wie der Hintergrundentfernung, die mit beiden Plattformen hervorragend funktioniert, bei der aber die gemessene Leistung mit AGX Orin zwei- bis dreimal so hoch ist wie mit Orin Nano. Es liegt daher die Vermutung nahe, dass sich dieser Leistungsunterschied bei besonders anspruchsvollen Anwendungen, die auf dem 40 TOPS Orin Nano gegenüber dem 275 TOPS AGX Orin laufen, noch größer ausfallen wird.

Abschließende Worte

Im ersten Teil dieser Serie haben wir die grundlegenden SoM-Spezifikationen des Orin Nano und des AGX Orin verglichen, einschließlich der Video-Codier-/Decodierfähigkeiten, der Kamera und der PCIe-Konnektivität usw. Außerdem haben wir uns mit dem Formfaktor, den SoM-/Mainboard-Schnittstellen und dem Stromverbrauch beschäftigt. Neben der GPU/AI-Leistung gibt es noch weitere Faktoren, die bei der Entscheidung zwischen den beiden Plattformen berücksichtigt werden müssen. Und wie immer ist es eine Frage des geeigneten Werkzeugs für die jeweilige Aufgabe.

  — Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.
DesignSpark Electrical Logolinkedin