Hallo Habr.
Vor relativ kurzer Zeit, im Jahr 2019,
kündigte NVIDIA
einen Einplatinencomputer an , der mit dem Raspberry Pi-Formfaktor kompatibel ist und sich auf KI und ressourcenintensive Berechnungen konzentriert.

Nach dem Verkauf wurde es interessant zu sehen, wie es funktioniert und was damit gemacht werden kann. Es ist nicht so interessant, Standard-Benchmarks zu verwenden, daher werden wir unsere eigenen entwickeln. Für alle Tests wird der Quellcode im Text angegeben. Für diejenigen, die daran interessiert sind, was passiert ist, weiter unter dem Schnitt.
Hardware
Für den Anfang die Spezifikationen von der NVIDIA-Website:

Von den interessanten sind hier einige Punkte.
Die erste ist eine GPU mit jeweils 128 Kernen. Auf der Karte können Sie GPU-orientierte Aufgaben wie CUDA (unterstützt und sofort installiert) oder Tensorflow ausführen. Der Hauptprozessor ist ein 4-Kern-Prozessor und, wie unten gezeigt, ziemlich gut. 4 GB Speicher zwischen CPU und GPU.
Das zweite ist die Kompatibilität mit dem Raspberry Pi. Die Karte verfügt über einen 40-poligen Anschluss mit verschiedenen Schnittstellen (I2C, SPI usw.) sowie einen Kameraanschluss, der auch mit dem Raspberry Pi kompatibel ist. Es kann davon ausgegangen werden, dass eine große Anzahl vorhandener Zubehörteile (Bildschirme, Motorsteuerplatinen usw.) funktioniert (möglicherweise müssen Sie ein Verlängerungskabel verwenden, da Jetson Nano immer noch unterschiedlich groß ist).
Drittens verfügt die Karte über 2 Videoausgänge, Gigabit-Ethernet und USB 3.0, d. H. Jetson Nano als Ganzes ist sogar etwas funktionaler als der Prototyp. Die 5-V-Stromversorgung kann sowohl über Micro-USB als auch über einen separaten Anschluss erfolgen, der für den
Abbau von Bitcoins mit ressourcenintensiven Aufgaben empfohlen wird. Wie beim Raspberry Pi wird die Software von der SD-Karte geladen, deren Bild zuerst aufgenommen werden muss. Im Allgemeinen ist das Board ideologisch dem Raspberry Pi ziemlich ähnlich, der anscheinend in NVIDIA konzipiert wurde. Aber es gibt kein WiFi auf der Platine, es gibt ein definitives Minus, diejenigen, die es wünschen, müssen ein USB-WiFi-Modul verwenden.
Wenn Sie genau hinschauen, können Sie sehen, dass das Gerät strukturell aus zwei Modulen besteht - dem Jetson Nano-Modul selbst und der unteren Platine mit Anschlüssen. Die Verbindung erfolgt über einen Anschluss.

Das heißt, Die Karte kann getrennt und separat verwendet werden. Dies ist praktisch für eingebettete Lösungen.
Apropos Preis. Der ursprüngliche Preis für Jetson Nano in den USA beträgt 99 US-Dollar, der Preis in Europa mit einem Aufschlag in den örtlichen Geschäften beträgt ca. 130 Euro (wenn Sie Rabatte erhalten, können Sie wahrscheinlich günstigere finden). Wie viel Nano in Russland kostet, ist unbekannt.
Software
Wie oben erwähnt, unterscheidet sich der Download und die Installation nicht wesentlich vom Raspberry Pi. Wir laden das
Image über Etcher oder Win32DiskImager auf die SD-Karte, steigen in Linux ein und stellen die erforderlichen Bibliotheken bereit. Eine ausgezeichnete Schritt-für-Schritt-Anleitung ist
hier , ich habe sie verwendet. Fahren wir gleich mit den Tests fort - versuchen Sie, verschiedene Programme unter Nano auszuführen, und sehen Sie, wie sie funktionieren. Zum Vergleich habe ich drei Computer verwendet - meinen Arbeitslaptop (Core I7-6500U 2,5 GHz), Raspberry Pi 3B + und Jetson Nano.
CPU-TestZunächst ein Screenshot des Befehls lscpu.
Himbeer Pi 3B +:

Jetson Nano:

Beginnen wir für Berechnungen mit etwas Einfachem, das jedoch Prozessorzeit erfordert. Zum Beispiel durch Berechnung der Zahl Pi. Ich habe ein einfaches Python-Programm mit
Stackoverflow genommen .
Ich weiß nicht, ob es optimal ist oder nicht, aber es spielt für uns keine Rolle - wir interessieren uns für die
relative Zeit .
Quellcode unter dem Spoiler Wie erwartet arbeitet das Programm nicht schnell. Ergebnis für Jetson Nano: 0,8c.

Raspberry Pi 3B + zeigte eine deutlich längere Zeit: 3.06c. Der „vorbildliche“ Laptop erledigte die Aufgabe in 0,27 Sekunden. Im Allgemeinen ist der Hauptprozessor in Nano auch ohne Verwendung einer GPU für seinen Formfaktor recht gut. Wer möchte, kann den Raspberry Pi 4 überprüfen, ich habe ihn nicht zur Verfügung.
Sicherlich gibt es diejenigen, die in den Kommentaren schreiben möchten, dass Python nicht die beste Wahl für solche Berechnungen ist. Ich wiederhole noch einmal, dass es für uns wichtig war
, die Zeit zu
vergleichen , es besteht keine Notwendigkeit, sie zu minimieren. Es ist klar, dass es Programme gibt, die die Pi-Zahl viel schneller berechnen.
PycudaKommen wir zu interessanteren Berechnungen mit der GPU, für die wir natürlich (die Karte stammt von NVIDIA) CUDA verwenden werden. Die PyCUDA-Bibliothek erforderte während der Installation etwas Schamanismus. Sie fand cuda.h nicht. Die Verwendung des Befehls "sudo env" PATH = $ PATH "pip install pycuda" half, vielleicht gibt es einen anderen Weg (weitere Optionen wurden
im devtalk.nvidia.com-Forum besprochen).
Für den Test habe ich das einfache Programm
SimpleSpeedTest für PyCUDA verwendet, das einfach die Sinuswerte in einer Schleife zählt. Es ist nicht nützlich, aber es ist durchaus möglich, es auszuwerten, und sein Code ist einfach und klar.
Quellcode unter dem Spoiler Wie Sie sehen können, erfolgt die Berechnung mit der GPU über CUDA und mit der CPU über numpy.
Ergebnisse:
Jetson Nano - 0,67 c GPU, 13,3 c CPU.
Raspberry Pi 3B + - 41,85 c CPU, GPU - keine Daten, CUDA auf RPi funktioniert nicht.
Notebook - 0,05 s GPU, 3,08 c CPU.
Alles ist durchaus zu erwarten. Berechnungen auf der GPU sind viel schneller als Berechnungen auf der CPU (immer noch 128 Kerne), der Raspberry Pi bleibt deutlich zurück. Nun, natürlich, egal
wie viel Sie den Wolf füttern, der Elefant hat immer noch eine Laptop-Grafikkarte, die viel schneller ist als die Karte in Jetson Nano - es ist wahrscheinlich, dass viel mehr Verarbeitungskerne darin sind.
Fazit
Wie Sie sehen, erwies sich das NVIDIA-Board als sehr interessant und sehr produktiv. Es ist etwas größer und teurer als der Raspberry Pi, aber wenn jemand mehr Rechenleistung mit einer kompakten Größe benötigt, lohnt es sich. Dies ist natürlich nicht immer erforderlich - um beispielsweise die Temperatur an Narodmon zu senden, reicht der Raspberry Pi Zero aus und verfügt über mehrere Ränder. Jetson Nano behauptet also nicht
, Himbeere und Klone zu
ersetzen , aber für ressourcenintensive Aufgaben ist es sehr interessant (es können nicht nur Drohnen oder mobile Roboter sein, sondern auch beispielsweise eine
Kamera für eine Türklingel mit Gesichtserkennung).
In einem Teil passte nicht alles, was gedacht war. Im zweiten Teil werden Tests des AI-Teils durchgeführt - Tests von Keras / Tensorflow und Aufgaben zur Klassifizierung und Bilderkennung.