Manchmal besteht der Wunsch, dem weltlichen Trubel zu entfliehen und etwas Interessantes zu tun. In meinem Fall war es
Vindinium - ein KI-Wettbewerb, bei dem vier Ritter um Ruhm, Reichtum und Nahrung kämpfen.

Und wir werden uns auf die Aufgabe vorbereiten - in die Rangliste einzusteigen. Die Aufgabe wird jedoch noch interessanter gelöst, wenn wir eine strikte Einschränkung festlegen - künstliche Intelligenz wird Ressourcen nicht von unserem zweifellos leistungsstarken Computer beziehen, sondern von einer einzelnen Karte in der ARM-Architektur! Gleichzeitig erhalten wir nicht nur Erfahrung mit tragbaren Geräten, sondern auch die Möglichkeit, den Bot rund um die Uhr eingeschaltet zu halten, ohne den Hauptcomputer zu beschädigen!
Teil 2Teil 3Fangen wir an!
Wie lange, kurz gesagt, drei Einplatinencomputer mit einem günstigen Preis gefunden wurden - Orange Pi Zero, NanoPi Neo, NanoPi Neo2 -, ihre kurzen Eigenschaften sind in der Tabelle dargestellt:
| Orange pi Null | NanoPi Neo | NanoPi Neo2 |
---|
RAM-Größe | 512 MB DDR3 | 512 MB DDR3 | 512 MB DDR3 |
Eingebauter Speicher | - - | - - | - - |
CPU | Allwinner H2 + Cortex A7 (32-Bit-Architektur, 4 Kerne, Frequenz bis 1200 Hz) | Allwinner H3 Cortex A7 (32-Bit-Architektur, 4 Kerne, Frequenz bis 1200 Hz) | Allwinner H5 Cortex-A53 ( 64- Bit-Architektur, 4 Kerne, Frequenz bis 1500 Hz ) |
Grafikkern | ARM Mali400 MP2, ohne einen Hinweis auf OpenCL | ARM Mali400 MP4, ohne einen Hauch von OpenCL | ARM Mali450 MP4, ohne einen Hauch von OpenCL |
"Drei Größen", mm | 52 x 46 x 17 | 40 x 40 x 17 | 40 x 40 x 17 |
Internetzugang | 100 Mbit / s Ethernet + 802.11 b / g / n WiFi mit Antenne | 100 Mbit / s Ethernet | 1 Gbit / s Ethernet |
Anzahl der USB-Ausgänge | 1 (+2 angezeigt) | 1 (+2 angezeigt) | 1 (+2 angezeigt) |
Preis (+ Lieferung nach Moskau), $ | 7 + 3,85 = 10,85 | 8 + 5 = 13 | 15 + 5 = 20 |
Die Lieferung von Orange Pi Zero dauerte genau 20 Tage, Neo und Neo2 kamen einen Tag früher an, glaube ich, sehr schnell.
Fangen wir an zu verstehen ...
Es ist erwähnenswert, dass das Basic Starter Kit (+13 Dollar) für Neo bestellt wurde, das neben dem Computer Folgendes enthält:
- USB-zu-UART-Konverter;
- ein großer (wenn Sie eine Aluminiumplatte von der Größe eines Computers nennen können) Kühler + Halterung;
- MicroSD-Karte auf 8 GB SanDisk 10class.
- MicroUSB-Kabel.
Es gibt auch ein komplettes Starter-Kit (29 US-Dollar + Versand), das alles enthält, was in Basic enthalten ist, sowie ein Gehäuse und einen OLED-Bildschirm. Für unseren Zweck ist dies jedoch etwas überflüssig.
Machen Sie sich bereit für den ersten Start ...
Von der
Armbian- Website
laden wir drei neue Bilder für NanoPi Neo, Neo2 und OrangePi Zero herunter. Wir verwenden eine MicroSD-Karte aus dem Basic Starter Kit.
Von nun an werden wir einen Einplatinencomputer einen Einplatinencomputer und einen Computer nennen - einen großen und leistungsstarken Computer oder Laptop, der uns vertraut ist.Jetzt haben wir zwei Möglichkeiten, mit Einzelzahlern zu arbeiten:
[1] Über Ethernet;
Kurze Anleitung- Wir verbinden eine einzelne Karte über ein Ethernet-Kabel mit einem Laptop, Computer oder Router.
- Schalten Sie die Stromversorgung für einen einzelnen Spieler ein.
- Wir scannen das Netzwerk, für die meisten Linux-basierten Systeme kann dies mit dem Befehl "arp -a" durchgeführt werden. Für Windows gibt es nmap.
- Wir sind mit einem Single-Board-Server für Linux verbunden: "ssh ip -l root", das Standardkennwort ist "1234"; Unter Windows können Sie jeden SSH-Client verwenden, z. B. multifunktionalen Kitt
[2] Verwenden eines USB-zu-UART-Konverters.
Kurze Anleitung- Wir verbinden den Konverter mit dem Computer, bestimmen seine physikalische Adresse: Unter Linux schauen wir uns die letzten Zeilen des „dmesg | an grep tty "und suchen Sie nach etwas ähnlichem wie ttyUSBX, für Windows suchen wir im Geräte-Manager nach neuen COM-Geräten
- Wir schließen eine Einzelplatte an den Konverter an: Wir verbinden das Kabel mit dem Konverter, so dass GND mit einem schwarzen Kabel verbunden ist und TX gelb ist, und schließen dann eine Einzelplatte an (Neo / Neo2 werden an die einzigen gelöteten Kontakte in der Nähe des USB-Anschlusses angeschlossen, sodass sich das schwarze Kabel in der Nähe der nächsten Kante befindet, und Gelb zeigt in Richtung der Flash-Karte, es stellt sich die Reihenfolge heraus: GND, 5V, RX, TX; Orange Pi Zero kann nicht mit dem Kabel verbunden werden, das mit dem Starter Pack geliefert wird, es gibt keine 5V in der Mitte, daher müssen Sie ein anderes Kabel verwenden.)
- Jetzt müssen Sie ein Programm finden, in dem es bequem ist, mit der Konsole unter TTY / COM zu arbeiten: Für Linux empfehle ich ein praktisches Minicom oder Putty (Sie müssen mit Superuser-Berechtigungen ausgeführt werden), Putty ist für Windows weiterhin relevant
Sie müssen die Temperatur überwachen, Sie müssen die Temperatur überwachen ...
Wir sollten die Temperatur regeln, wenn wir AI für Vindinium darauf enthalten möchten, um zu vermeiden, dass die Frequenz verringert wird, ein Einplatinen einfriert oder eine Fehlfunktion auftritt. Lassen Sie uns ein einfaches Skript für die Temperaturüberwachung schreiben (gleichzeitig trainieren wir, um .py-Dateien auszuführen):
Skriptimport time, sys print('NanoTemp 0.1') while True: with open('/sys/devices/virtual/thermal/thermal_zone0/temp', 'r') as f: temp1 = f.read()[:-1] with open('/sys/devices/virtual/thermal/thermal_zone1/temp', 'r') as f: temp2 = f.read()[:-1] print('\r'+temp1+' '+ temp2) time.sleep(0.5)
Jetzt können Sie diese Datei auf ein Flash-Laufwerk im Verzeichnis / home /
username / hochladen.
TIPP: Ubuntu, Debian und viele andere Linux-basierte Betriebssysteme können unter der Box mit ext3 / ext4-Dateisystemen arbeiten. Windows bietet an, das USB-Flash-Laufwerk zu formatieren. Sie müssen Dienstprogramme verwenden, mit denen Sie mit diesem Dateisystemtyp arbeiten können. Installieren Sie beispielsweise den Ext2Fsd-Treiber.
Später erfuhr ich von einem Programm wie armbianmonitor, mit dem Sie nicht nur die Temperatur, sondern auch die Frequenz, die Ortszeit und die Last sicher überwachen können, was zweifellos nützlich ist.
Wir schließen jede einzelne Karte an das Stromnetz an, warten 15 Minuten im Leerlauf und sehen die Ergebnisse:
Orange pi Null | NanoPi Neo | NanoPi Neo2 |
---|
60 ° C. | 35 ° C. | 50,3 ° C. |
Interessanterweise zeigt der Sensor auf Neo2 die Temperatur bis zur ersten Dezimalstelle an,
verbirgt jedoch Informationen über die aktuelle Prozessorfrequenz vor uns .
Es ist traurig, dass Orange Pi Zero im Leerlauf so heiß ist, im Gegensatz zu seinem Bruder Neo bei derselben Frequenz von 240 MHz. Die Foren sind voller Unzufriedenheit zu diesem Thema. Als Option zur Lösung dieses Problems wird ein spezielles Skript angeboten, das Systemdateien bearbeitet und die Kühlung verwendet. Es gibt jedoch auch Informationen, dass dies alles Maßnahmen gegen Erwärmen auf 80 Grad im Leerlauf waren, und 55-60 Grad in der frischen Version von Armbian sind in diesem Fall normal. Anscheinend ist das
Problem nur teilweise gelöst .
Versuchen wir, die passive Kühlung zu installieren. Für Orange Pi Zero wurde ein spezieller Satz von zwei Kühlkörpern für Prozessor und RAM für 2,82 USD gekauft. Im Fall von NanoPi haben wir einen leistungsstarken Kühler, der separat vom Starter Pack für 2,99 USD erhältlich ist.
Jetzt sieht das Bild 15 Minuten nach dem Start folgendermaßen aus:
Orange pi Null | NanoPi Neo | NanoPi Neo2 |
---|
53 ° C. | 30 ° C. | 39,5 ° C. |
Aufwärmen!
Es wurde festgestellt, dass die Orange sehr warm war. Interessanterweise wie viel Grad wird die Temperatur während der Last springen. Wir werden das in den Repositories verfügbare Programm cpuburn verwenden (für Neo und Zero verwenden wir den Befehl burnCortexA7, für Neo2 - burnCortexA8).
Gut sagen ...
Alle Single-Board-Karten erreichen mit vier Kopien von cpuburn problemlos eine Temperatur von 80 Grad - passive Kühlung ist für eine solche Erwärmung trivial. Ich glaube jedoch, dass im Fall von Vindinium nicht alles so traurig sein wird - es gibt eine zyklische Änderung in der Arbeits- und Ausfallzeitphase (Warten auf eine Antwort vom Server), und das cpuburn-Programm selbst ist auf die effizienteste Wärmeableitung ausgelegt. AI kann den Prozessor nicht in einem solchen Ausmaß laden, dass Zumindest wegen der Notwendigkeit, auf Daten aus dem RAM zu warten, da unsere Aufgabe nicht vollständig im Prozessor-Cache untergebracht werden kann.
Hier kommt jedoch eine interessante Funktion heraus: Orange Pi Zero erreicht selbst mit einer einzigen Kopie von cpuburn 80 Grad, für Neo2 reichen drei Kopien und Neo für vier Kopien des Tests.
Benchmarks, Menschen brauchen Brot und Benchmarks!
Bevor Sie AI schreiben, müssen Sie die wichtigste Frage stellen: Wie oft sind diese Einplatinencomputer schwächer als herkömmliche Computer? Ich kann nicht glauben, dass ein kleines Stück Silizium, Metall und Textolit etwas Außergewöhnliches bewirken kann.
Für Benchmarks wurde das
Dienstprogramm phoronix-test-suite verwendet.
Im Gegensatz zu allen Single-Board-Playern erlaube ich mir, meinen Laptop (i5 2450M, 6 GB DDR3, ohne diskrete Grafik, mit Ubuntu 16.04 LTS) zu testen, um die Entwicklung von KI zu erleichtern (es wird möglich sein, bestimmte Codeteile auszuführen und zu wissen, wie oft sie sich ändern werden die Betriebszeit des gleichen Stücks auf Einzelplatine). Wir verwenden nur passive Kühlung. Für eine Produktivitätseinheit nehmen wir eine Orange.
UPD: Während der Moderation des Artikels wurde vor dreizehn Jahren ein alter Computer in der Nähe des Hauses gefunden (
Intel Pentium 4 (1 Kern, 2 Threads, 2003, ein Top-Prozessor-Prozessor in seiner Architektur), 512 MB DDR x2, Radeon 9600XT 128 MB DDR) wurde stark genannt. Um zu vergleichen, wie es war, habe ich
Windows 10 Ubuntu 16.04 LTS installiert, was sich zu meiner Überraschung als sehr funktionell herausstellte.
| Laptop | Dinosaurier-Computer | Orange pi Null | NanoPi Neo | NanoPi Neo2 |
---|
John The Ripper 1.8.0, Test: Blowfish (Papageien / Sek.) | 797 Real C / S (+ 125%) | 313 Real C / S (+ 125%) | 354 Real C / S. | 394 Real C / S (+ 11%) | 475 Real C / S (+ 34%) |
Smallpt V1.0.2 (Sekunden) | 586 Sekunden (4,6-mal schneller) | 1214 Sekunden (2,2-mal schneller) | 2694 Sekunden | 2240 Sekunden (1,2-mal schneller) | 1289 Sekunden (2,08-mal schneller) |
C-Ray v1.1 (Sekunden) | 120,86 Sekunden (5,03-mal schneller) | 294,61 Sekunden (2,37-mal schneller) | 607,83 Sekunden | 485,71 Sekunden (1,25-mal schneller) | 349,51 Sekunden (1,74-mal schneller) |
Himeno Benchmark v3.0 (Papageien) | 1165,11 MFLOPS (+ 8908%) | 385,28 MFLOPS (+ 2455%) | 15.08 MFLOPS | 13,08 MFLOPS (15% schwächer) | 37,23 MFLOPS (+ 185%) |
Drücken Sie 7zip (Papageien) | 5010 MIPS (+ 585%, große Abweichung vom Durchschnitt: 22,77%) | 1706 MIPS (+ 88%) | 857 MIPS | 950 MIPS (+ 11%) | 1103 MIPS (+ 29%) |
ffmpeg (Sekunden) | 30,69 Sekunden (13,25-mal schneller) | 81,22 Sekunden (5 mal schneller) | 406,76 Sekunden | 426,94 Sekunden (5% langsamer) | Der Test wurde nicht gestartet - Kompilierungsfehler |
Kosten unter Berücksichtigung von Lieferung und Heizkörpern | 283,39 USD (+ 2046%) | - - | 13,67 $ | 15,97 $ (+ 17%) | 22,97 USD (+ 68%) |
Beim Studium von Informationen im Internet wurde deutlich, dass H2 + eine
leicht modifizierte Version von H3 ist :
H2 + ist eine Variante von H3, die für OTT- Geräte mit geringer Leistung entwickelt wurde, denen Gigabit MAC- und 4K HDMI-Unterstützung fehlt.
Original:
H2 + ist eine Variante von H3, die auf Low-End-OTT-Boxen ausgerichtet ist und keine Unterstützung für Gigabit MAC und 4K HDMI-Ausgang bietet.
In diesem Fall wird es interessant, aus welchem Grund zwischen H2 + und H3 ein solcher Unterschied in der Leistung und im thermischen Regime besteht.
Zusammenfassend.
Durch den Vergleich von drei verschiedenen Einzelplatinen kann ich Folgendes zusammenfassen:
- Orange Pi Zero ist zweifellos das billigste von allen. Das Vorhandensein von WiFi an Bord ist ein sehr guter Vorteil, aber seine Geschwindigkeit beträgt nicht mehr als 4 Mbit / s (ich habe ungefähr den gleichen Wert), was die Verwendung als normaler drahtloser Dateiserver ausschließt, aber für IoT passt es perfekt . Sie sollten mindestens einen Kühler kaufen, um auch im Leerlauf keine Probleme mit abnormalen Temperaturen zu haben. Es gibt noch eine andere schöne Seite - das Vorhandensein von TV-OUT, mit dem ich arbeiten konnte. Wenn Sie jedoch nach einer Einzelplatine für die Arbeit im Grafikmodus suchen, sollten Sie in Richtung Geräte mit HDMI schauen, da die Bildschirmauflösung von 720 x 576 das Auge nicht erfreut. Es ist sehr praktisch, dass das offizielle Geschäft des Herstellers bei Aliexpress erhältlich ist.
- NanoPi Neo verfügt im Gegensatz zu seinem jüngeren Bruder nicht über TV-OUT und integriertes WLAN (für den drahtlosen Betrieb müssen Sie einen WLAN-Dongle für 2-3 US-Dollar kaufen, dessen deklarierte Datenübertragungsrate bei etwa 150 Mbit / s liegt) Allein geht es zum fünften Teil teurer, aber es kann uns mit geringerer Wärmeableitung, einem festen festen Kühler, höherer Leistung gefallen, der alle Mängel der Plattform abdeckt. Erwähnenswert ist auch die Vielzahl der Komponenten, die der Hersteller für seine Nachkommen anbietet. Eine weitere Nuance ist, dass Sie auf der offiziellen Website bestellen müssen, obwohl dies eigentlich nicht so schwierig ist.
- NanoPi Neo2. Die Firmware-Version von armbian befindet sich im experimentellen Stadium, was sich in den im Artikel beschriebenen Problemen äußert (Unfähigkeit, die Häufigkeit zu sehen, Fehler beim Kompilieren von ffmpeg). Selbst in seiner Rohform kann Neos zweites Advent in Tests (erinnern Sie sich an die 64-Bit-Architektur), Gigabit-Ethernet, eine recht gute Leistung vorweisen, was es sofort zu einem Favoriten für Aufgaben macht, bei denen eine gute Leistung und Geschwindigkeit der kabelgebundenen Datenübertragung erforderlich sind. Aber vergessen Sie nicht Ubuntu Core, die Situation ist möglicherweise besser und Armbian steht nicht still. In Bezug auf die Kosten ist es natürlich mehr als eineinhalb Mal besser als eine Orange, daher lohnt es sich, die Wettbewerber in seinem Preissegment zu betrachten.
Für mich selbst habe ich beschlossen, weiter mit Neo und Neo2 zu arbeiten und eine Orange beiseite zu legen, bis eine interessante Idee für ein Smart Home auftaucht, weil Die Leistung von Neo ist der von Zero sehr ähnlich, jedoch ohne Temperaturprobleme.
Im nächsten Artikel werden wir eine neue Programmiersprache für uns auswählen, die Sie sofort lernen können, wenn Sie AI schreiben.
→
Link zu Vindinium→ Der
Link zum Vindinium-Subreddit ist sehr nützlich. Dort können Sie meine Bewegungen in Vindinium verfolgen
→
Link zu meinem Github mit ein wenig Arbeit an VindiniumIch würde mich sehr freuen, wenn mehr Leute von diesem Spiel angezogen werden, denn während der Rivalität beginnt der Spaß!