Parfois, il y a un désir d'échapper à l'agitation du monde et de faire quelque chose d'intéressant. Dans mon cas, c'était
Vindinium - une compétition d'IA dans laquelle quatre chevaliers se battent pour la gloire, la richesse et la nourriture.

Et nous allons nous préparer la tâche - pour entrer dans le classement. Cependant, la tâche sera résolue encore plus intéressante si nous fixons une restriction stricte - l'intelligence artificielle tirera des ressources non pas de notre ordinateur, sans aucun doute, puissant, mais d'une carte unique sur l'architecture ARM! Dans le même temps, nous aurons non seulement de l'expérience avec les appareils portables, mais également la possibilité de garder le bot allumé 24h / 24 et 7j / 7 sans endommager l'ordinateur principal!
2e partie3e partieCommençons!
Combien de temps, brièvement, trois ordinateurs à carte unique avec un prix bon marché ont été trouvés - Orange Pi Zero, NanoPi Neo, NanoPi Neo2, leurs brèves caractéristiques sont présentées dans le tableau:
| Orange pi zéro | NanoPi Neo | NanoPi Neo2 |
---|
Taille de la RAM | 512 Mo DDR3 | 512 Mo DDR3 | 512 Mo DDR3 |
Mémoire intégrée | - | - | - |
CPU | Allwinner H2 + Cortex A7 (architecture 32 bits, 4 cœurs, fréquence jusqu'à 1200 Hz) | Allwinner H3 Cortex A7 (architecture 32 bits, 4 cœurs, fréquence jusqu'à 1200 Hz) | Allwinner H5 Cortex-A53 (architecture 64 bits, 4 cœurs, fréquence jusqu'à 1500 Hz ) |
Noyau graphique | ARM Mali400 MP2, sans un soupçon d'OpenCL | ARM Mali400 MP4, sans un soupçon d'OpenCL | ARM Mali450 MP4, sans un soupçon d'OpenCL |
"Trois tailles", mm | 52x46x17 | 40x40x17 | 40x40x17 |
Accès Internet | Ethernet 100 Mbps + WiFi 802.11 b / g / n avec antenne | Ethernet 100 Mbps | Ethernet 1 Gbit / s |
Nombre de sorties USB | 1 (+2 affiché) | 1 (+2 affiché) | 1 (+2 affiché) |
Prix (+ livraison à Moscou), $ | 7 + 3,85 = 10,85 | 8 + 5 = 13 | 15 + 5 = 20 |
La livraison d'Orange Pi Zero a pris exactement 20 jours, Neo et Neo2 sont arrivés un jour plus tôt, je pense, très rapidement.
Commençons par comprendre ...
Il vaut la peine de dire que le Basic Starter Kit (+13 dollars) a été commandé pour Neo, qui, en plus de l'ordinateur, comprend:
- Convertisseur USB vers UART;
- un grand radiateur + support (si vous pouvez appeler une plaque d'aluminium de la taille d'un ordinateur tel);
- Carte MicroSD sur 8 Go SanDisk 10class.
- Câble MicroUSB.
Il y a aussi un kit de démarrage complet (29 $ + expédition), il comprend tout ce qui est disponible en Basic, plus un étui et un écran OLED, mais pour notre objectif, c'est quelque peu redondant.
Préparez-vous pour le premier lancement ...
Sur le site Web d'
Armbian, nous téléchargeons trois nouvelles images pour NanoPi Neo, Neo2 et OrangePi Zero, nous utiliserons une carte MicroSD obtenue à partir du kit de démarrage de base.
Désormais, nous appellerons un ordinateur monocarte un ordinateur monocarte et un ordinateur - un ordinateur ou un ordinateur portable grand et puissant qui nous est familier.Nous avons maintenant deux façons de travailler avec un seul payeur:
[1] Via Ethernet;
Brève instruction- Nous connectons une seule carte via un câble Ethernet à un ordinateur portable, un ordinateur ou un routeur;
- Allumez l'alimentation pour un seul joueur;
- Nous analysons le réseau, pour la plupart des systèmes basés sur Linux, cela peut être fait en utilisant la commande "arp -a", pour Windows il y a nmap;
- Nous sommes connectés à un serveur monocarte, pour linux: "ssh ip -l root", le mot de passe par défaut est "1234"; sous Windows, vous pouvez utiliser n'importe quel client ssh, par exemple, du mastic multifonctionnel
[2] Utilisation d'un convertisseur USB-UART.
Brève instruction- Nous connectons le convertisseur à l'ordinateur, déterminons son adresse physique: sous linux nous regardons les dernières lignes de la «dmesg | grep tty "et recherchez quelque chose de similaire à ttyUSBX, pour Windows, nous recherchons dans le Gestionnaire de périphériques de nouveaux périphériques COM
- Nous connectons une seule plaque au convertisseur: nous connectons le fil au convertisseur de sorte que GND soit connecté avec un fil noir, et TX est jaune, puis nous connectons une seule plaque (Neo / Neo2 sont connectés aux seuls contacts soudés près du port USB afin que le fil noir soit près du bord le plus proche, et jaune pointé dans la direction de la carte flash, il s'avère l'ordre: GND, 5V, RX, TX; Orange Pi Zero ne peut pas être connecté avec le câble fourni avec le Starter Pack, il n'y a pas de 5V au milieu, vous devez donc utiliser un autre câble)
- Maintenant, vous devez trouver un programme dans lequel il sera pratique de travailler avec la console sur TTY / COM: pour linux, je recommanderai un minicom ou un putty pratique (vous devez exécuter avec les privilèges de superutilisateur), putty est toujours pertinent pour Windows
Vous devez surveiller la température, vous devez surveiller la température ...
Nous devons contrôler la température si nous voulons contenir de l'IA pour Vindinium dessus, en évitant d'abaisser la fréquence, le gel ou le dysfonctionnement d'une carte unique. Écrivons un script simple pour la surveillance de la température (en même temps, entraînons-nous à exécuter les fichiers .py):
Scriptimport 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)
Vous pouvez maintenant télécharger ce fichier sur une clé USB dans le répertoire / home /
username /.
CONSEIL: Ubuntu, Debian et de nombreux autres systèmes d'exploitation basés sur Linux peuvent fonctionner avec les systèmes de fichiers ext3 / ext4 sous la boîte; Windows proposera de formater la clé USB. Vous devez utiliser des utilitaires qui vous permettent de travailler avec ce type de système de fichiers, par exemple, installer le pilote Ext2Fsd.
Plus tard, j'ai découvert un programme comme armbianmonitor, avec lequel vous pouvez surveiller en toute sécurité non seulement la température, mais aussi la fréquence, l'heure locale et la charge, ce qui est sans aucun doute utile.
Nous connectons chaque carte au secteur, attendons 15 minutes en veille et voyons les résultats:
Orange pi zéro | NanoPi Neo | NanoPi Neo2 |
---|
60 ° C | 35 ° C | 50,3 ° C |
Fait intéressant, le capteur sur Neo2 affiche la température jusqu'à la première décimale, cependant, il
nous cache des informations sur la fréquence actuelle du processeur .
Il est triste qu'Orange Pi Zero soit si chaud en période d'inactivité, contrairement à son frère Neo à la même fréquence de 240 MHz. Les forums sont remplis de mécontentement à ce sujet. Comme option qui résout ce problème, un script spécial est proposé, éditant les fichiers système et utilisant le refroidissement. Cependant, il existe également des informations selon lesquelles il s'agissait de mesures contre le chauffage à 80 degrés en période d'inactivité, et 55 à 60 degrés dans la nouvelle version de l'armbian est normal dans ce cas. Apparemment, le
problème n'est résolu que partiellement .
Essayons d'installer un refroidissement passif. Pour Orange Pi Zero, un ensemble spécial de deux dissipateurs thermiques pour le processeur et la RAM a été acheté pour 2,82 $. Dans le cas de NanoPi, nous avons un radiateur puissant, qui peut être acheté séparément du Starter Pack pour 2,99 $.
Maintenant, l'image 15 minutes après le lancement ressemble à ceci:
Orange pi zéro | NanoPi Neo | NanoPi Neo2 |
---|
53 ° C | 30 ° C | 39,5 ° C |
Réchauffez-vous au maximum!
Il a été remarqué que l'orange était très chaude. Fait intéressant, combien de degrés la température augmentera-t-elle pendant la charge. Nous utiliserons le programme cpuburn disponible dans les référentiels (pour Neo et Zero nous utiliserons la commande burnCortexA7, pour Neo2 - burnCortexA8).
Eh bien dis ...
Toutes les cartes à carte unique atteignent facilement une température de 80 degrés avec quatre copies de cpuburn - le refroidissement passif est trivial pour faire face à un tel chauffage. Cependant, je pense que dans le cas de Vindinium, tout ne sera pas si triste - il y a un changement cyclique dans la phase de travail et les temps d'arrêt (en attente d'une réponse du serveur), et le programme cpuburn lui-même est conçu pour la dissipation de chaleur la plus efficace, l'IA ne pourra pas charger le processeur dans une mesure telle que au moins en raison de la nécessité d'attendre les données de la RAM, car notre tâche ne pourra pas être entièrement prise en charge dans le cache du processeur.
Cependant, une fonctionnalité intéressante apparaît ici - Orange Pi Zero atteint 80 degrés même avec une seule copie de cpuburn, pour Neo2 trois copies suffisent, et Neo pour quatre copies du test.
Repères, les gens ont besoin de pain et de repères!
Avant d'écrire l'IA, vous devez déterminer la question la plus importante: combien de fois ces ordinateurs à carte unique sont-ils plus faibles que les ordinateurs conventionnels? Je ne peux pas croire qu’un petit morceau de silicium, de métal et de textolite puisse faire quoi que ce soit d’ordinaire.
Pour les benchmarks, l'
utilitaire phoronix-test-suite a été utilisé.
Contrairement à tous les lecteurs à carte unique, je me permettrai d'inclure mon ordinateur portable dans les tests (i5 2450M, DDR3 6 Go, sans graphiques discrets, exécutant Ubuntu 16.04 LTS) pour faciliter le développement de l'IA (il sera possible d'exécuter certains morceaux de code et de savoir combien de fois il changera le temps de fonctionnement de la même pièce sur une seule carte). Nous utilisons uniquement le refroidissement passif. Pour une unité de productivité, nous prenons une orange.
UPD: alors que l'article était en cours de modération, un vieil ordinateur a été trouvé près de la maison (
Intel Pentium 4 (1 cœur, 2 threads, 2003, un processeur de processeur supérieur sur son architecture), 512 Mo DDR x2, Radeon 9600XT 128 Mo DDR), il y a treize ans, un tel système peut a été appelé fort. Afin de comparer comment c'était, j'ai installé
Windows 10 Ubuntu 16.04 LTS, qui, à ma grande surprise, s'est avéré très fonctionnel.
| Ordinateur portable | Ordinateur de dinosaure | Orange pi zéro | NanoPi Neo | NanoPi Neo2 |
---|
John The Ripper 1.8.0, Test: Blowfish (perroquets / sec) | 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 (secondes) | 586 secondes (4,6 fois plus rapide) | 1214 secondes (2,2 fois plus rapide) | 2694 Secondes | 2240 secondes (1,2 fois plus rapide) | 1289 secondes (2,08 fois plus rapide) |
C-Ray v1.1 (secondes) | 120,86 secondes (5,03 fois plus rapide) | 294,61 secondes (2,37 fois plus rapide) | 607.83 Secondes | 485,71 secondes (1,25 fois plus rapide) | 349,51 secondes (1,74 fois plus rapide) |
Himeno Benchmark v3.0 (Perroquets) | 1165.11 MFLOPS (+ 8908%) | 385,28 MFLOPS (+ 2455%) | 15.08 MFLOPS | 13.08 MFLOPS (15% plus faible) | 37,23 MFLOPS (+ 185%) |
Compresser 7zip (perroquets) | 5010 MIPS (+ 585%, écart important par rapport à la moyenne: 22,77%) | 1706 MIPS (+ 88%) | 857 MIPS | 950 MIPS (+ 11%) | 1103 MIPS (+ 29%) |
ffmpeg (secondes) | 30,69 secondes (13,25 fois plus rapide) | 81.22 secondes (5 fois plus rapide) | 406.76 Secondes | 426,94 secondes (5% plus lent) | Le test n'a pas démarré - erreur de compilation |
Coûts tenant compte de la livraison et des radiateurs | 283,39 $ (+ 2046%) | - | 13,67 $ | 15,97 $ (+ 17%) | 22,97 $ (+ 68%) |
Lors de l'étude des informations sur Internet, il est devenu clair que H2 + est une
version légèrement modifiée de H3 :
H2 + est une variante de H3 conçue pour les unités OTT à faible performance qui ne prend pas en charge les ports Gigabit MAC et 4K HDMI.
Original:
H2 + est une variante de H3, destinée aux boîtiers OTT bas de gamme, qui ne prend pas en charge les sorties Gigabit MAC et 4K HDMI.
Dans ce cas, il devient intéressant pour quelle raison il existe une telle différence de performance et de régime thermique entre H2 + et H3.
Pour résumer.
En comparant trois cartes uniques différentes, je peux résumer:
- Orange Pi Zero est sans aucun doute le moins cher de tous. La présence du WiFi à bord est un très bon avantage, mais sa vitesse n'est pas supérieure à 4 Mbps (j'ai obtenu à peu près la même valeur), ce qui exclut son utilisation comme serveur de fichiers sans fil normal, mais pour l'IoT, il s'adapte parfaitement . Vous devez acheter au moins un radiateur, afin de ne pas rencontrer de problèmes avec des températures anormales, même en période d'inactivité. Il y a un autre beau côté - la présence de TV-OUT, avec laquelle j'ai réussi à travailler, mais si vous cherchez une seule carte pour travailler en mode graphique, vous devriez regarder dans le sens des appareils avec HDMI, car la résolution d'écran de 720x576 n'est pas agréable à l'œil. Il est très pratique que la boutique officielle du fabricant soit disponible sur Aliexpress;
- NanoPi Neo, contrairement à son frère cadet, est privé de TV-OUT et de Wi-Fi intégré (pour un fonctionnement sans fil, vous devrez acheter un dongle Wi-Fi pour 2-3 $, dont le taux de transfert de données déclaré est d'environ 150 Mbps), et en soi, il va à la cinquième partie plus chère, mais il peut nous plaire avec une dissipation thermique plus faible, un radiateur à son ferme, des performances plus élevées, qui couvrira toutes les lacunes de la plateforme. Il convient également de noter la grande variété de composants proposés par le fabricant pour leur progéniture. Une autre nuance est que vous devez commander sur le site officiel, bien que ce ne soit pas si difficile;
- NanoPi Neo2. La version du firmware d'Armbian est au stade expérimental, ce qui se traduit par les problèmes décrits dans l'article (impossibilité de voir la fréquence, erreur de compilation ffmpeg). Cependant, même sous sa forme brute, le deuxième avènement de Neo peut offrir de très bonnes performances dans les tests (rappelez l'architecture 64 bits), Gigabit Ethernet, qui le place immédiatement comme un favori pour les tâches où de bonnes performances et une vitesse de transfert de données filaire sont nécessaires. Mais n'oubliez pas Ubuntu Core, la situation peut être meilleure et armbian ne reste pas immobile. En termes de coût, il est bien sûr plus d'une fois et demie supérieur à une orange, il vaut donc la peine de regarder les concurrents dans son segment de prix.
Pour ma part, j'ai décidé de continuer à travailler avec Neo et Neo2, et mis de côté une orange jusqu'à ce qu'une idée intéressante pour une maison intelligente apparaisse, car Les performances de Neo sont très similaires à Zero, mais sans problèmes de température.
Dans le prochain article, nous choisirons un nouveau langage de programmation pour nous-mêmes, que vous pourrez apprendre immédiatement en écrivant l'IA.
→
Lien vers Vindinium→ Le
lien vers le subreddit Vindinium est une chose très utile, là vous pouvez suivre mes mouvements dans Vindinium
→
Lien vers mon github avec un peu de travail sur VindiniumJe serai très heureux si plus de gens sont attirés par ce jeu, car pendant la rivalité le plaisir commence!