Às vezes, há um desejo de escapar da agitação do mundo e fazer algo interessante. No meu caso, foi o
Vindinium - uma competição de IA em que quatro cavaleiros lutam por glória, riqueza e comida.

E nós nos prepararemos a tarefa - entrar na tabela de classificação. No entanto, a tarefa será resolvida ainda mais interessante se estabelecermos uma restrição estrita - a inteligência artificial extrairá recursos não do nosso computador, sem dúvida, poderoso, mas de uma placa única na arquitetura ARM! Ao mesmo tempo, teremos não apenas experiência com dispositivos portáteis, mas também a capacidade de manter o bot em funcionamento 24 horas por dia, 7 dias por semana, sem danificar o computador principal!
Parte 2Parte 3Vamos começar!
Por quanto tempo, brevemente, foram encontrados três computadores de placa única a um preço barato - Orange Pi Zero, NanoPi Neo, NanoPi Neo2, suas breves características são apresentadas na tabela:
| Pi laranja zero | NanoPi Neo | NanoPi Neo2 |
---|
Tamanho da RAM | 512MB DDR3 | 512MB DDR3 | 512MB DDR3 |
Memória incorporada | - | - | - |
CPU | Allwinner H2 + Cortex A7 (arquitetura de 32 bits, 4 núcleos, frequência de até 1200Hz) | Allwinner H3 Cortex A7 (arquitetura de 32 bits, 4 núcleos, frequência de até 1200Hz) | Allwinner H5 Cortex-A53 (arquitetura de 64 bits, 4 núcleos, frequência de até 1500Hz ) |
Núcleo gráfico | ARM Mali400 MP2, sem uma pitada de OpenCL | ARM Mali400 MP4, sem uma pitada de OpenCL | ARM Mali450 MP4, sem uma pitada de OpenCL |
"Três tamanhos", mm | 52x46x17 | 40x40x17 | 40x40x17 |
Acesso à Internet | Ethernet de 100 Mbps + WiFi 802.11 b / g / n com antena | Ethernet de 100 Mbps | Ethernet de 1 Gbps |
Número de saídas USB | 1 (+2 exibido) | 1 (+2 exibido) | 1 (+2 exibido) |
Preço (+ entrega a Moscou), $ | 7 + 3,85 = 10,85 | 8 + 5 = 13 | 15 + 5 = 20 |
A entrega do Orange Pi Zero levou exatamente 20 dias, Neo e Neo2 chegaram um dia antes, eu acho, muito rapidamente.
Vamos começar a entender ...
Descompactando pacotes ... Vale dizer que o Basic Starter Kit (+13 dólares) foi encomendado para o Neo, que, além do computador, inclui:
- Conversor USB para UART;
- um radiador grande (se você pode chamar uma placa de alumínio do tamanho de um computador) + suporte;
- Cartão MicroSD de 8GB SanDisk 10class.
- cabo MicroUSB.
Há também um kit completo para iniciantes (US $ 29 + frete), que inclui tudo o que está disponível no Basic, além de um estojo e uma tela OLED, mas, para nosso propósito, isso é um pouco redundante.
Prepare-se para o primeiro lançamento ...
No site da
armbian ,
baixamos três imagens novas para o NanoPi Neo, Neo2 e OrangePi Zero, usaremos um cartão MicroSD obtido no Basic Starter Kit.
A partir de agora, chamaremos um computador de placa única de computador de placa única e um computador - um computador grande ou poderoso ou laptop familiar para nós.Agora, temos duas maneiras pelas quais você pode trabalhar com pagadores únicos:
[1] Via Ethernet;
Breve instrução- Conectamos uma única placa via cabo Ethernet a um laptop, computador ou roteador;
- Ligue a energia para um único jogador;
- Escaneamos a rede, para a maioria dos sistemas baseados em Linux, isso pode ser feito usando o comando "arp -a"; no Windows, existe o nmap;
- Estamos conectados a uma placa única, para linux: “ssh ip -l root”, a senha padrão é “1234”; no Windows, você pode usar qualquer cliente ssh, por exemplo, massa multifuncional
[2] Usando um conversor USB-UART.
Breve instrução- Conectamos o conversor ao computador, determinamos seu endereço físico: no linux, olhamos as últimas linhas do “dmesg | grep tty "e procuramos algo semelhante ao ttyUSBX; no Windows, procuramos no Gerenciador de dispositivos novos dispositivos COM
- Conectamos uma placa única ao conversor: conectamos o fio ao conversor para que o GND seja conectado com um fio preto e TX seja amarelo, depois conectamos uma placa única (Neo / Neo2 são conectados aos únicos contatos soldados perto da porta USB, para que o fio preto fique próximo à borda mais próxima, e amarelo apontado na direção do cartão flash, ocorre a ordem: GND, 5V, RX, TX; o Orange Pi Zero não pode ser conectado ao cabo fornecido com o Starter Pack, não há 5V no meio, portanto, você deve usar um cabo diferente)
- Agora você precisa encontrar um programa no qual seja conveniente trabalhar com o console no TTY / COM: para linux, recomendarei um minicom ou putty conveniente (você precisa executar com privilégios de superusuário), o putty ainda é relevante para o Windows
Você precisa monitorar a temperatura, precisa monitorar a temperatura ...
Deveríamos controlar a temperatura se quisermos conter AI para o Vindinium, evitando diminuir a frequência, congelamento ou mau funcionamento de uma placa única. Vamos escrever um script simples para o monitoramento da temperatura (ao mesmo tempo, vamos treinar para executar arquivos .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)
Agora você pode fazer upload deste arquivo para uma unidade flash no diretório / home /
nome de usuário /.
DICA: Ubuntu, Debian e muitos outros sistemas operacionais baseados em Linux podem funcionar com sistemas de arquivos ext3 / ext4 por baixo da caixa; O Windows oferecerá o formato da unidade flash USB. Você deve usar utilitários que permitem trabalhar com esse tipo de sistema de arquivos, por exemplo, instalar o driver Ext2Fsd.
Mais tarde, aprendi sobre um programa como o armbianmonitor, com o qual você pode monitorar com segurança não apenas a temperatura, mas também a frequência, a hora local e a carga, o que é indubitavelmente útil.
Conectamos cada placa à rede elétrica, esperamos 15 minutos em tempo ocioso e vemos os resultados:
Pi laranja zero | NanoPi Neo | NanoPi Neo2 |
---|
60 ° C | 35 ° C | 50.3 ° C |
Curiosamente, o sensor no Neo2 mostra a temperatura até a primeira casa decimal, no entanto,
oculta informações sobre a frequência atual do processador .
É triste que o Orange Pi Zero esteja tão quente no tempo ocioso, ao contrário do irmão Neo na mesma frequência de 240 MHz. Os fóruns estão cheios de descontentamento sobre esse assunto. Como opção que resolve esse problema, é oferecido um script especial, editando os arquivos do sistema e usando o resfriamento. No entanto, também há informações de que todas essas medidas foram tomadas contra o aquecimento a 80 graus no tempo ocioso, e 55-60 graus na versão nova do armbian é normal nesse caso. Aparentemente, o
problema foi resolvido apenas parcialmente .
Vamos tentar instalar o resfriamento passivo. Para o Orange Pi Zero, um conjunto especial de dois dissipadores de calor para o processador e a RAM foram comprados por US $ 2,82. No caso do NanoPi, temos um radiador potente, que pode ser adquirido separadamente do Starter Pack por US $ 2,99.
Agora, a imagem 15 minutos após o lançamento fica assim:
Pi laranja zero | NanoPi Neo | NanoPi Neo2 |
---|
53 ° C | 30 ° C | 39.5 ° C |
Aquecer ao máximo!
Percebeu-se que a laranja estava muito quente. Curiosamente, quantos graus a temperatura irá saltar durante a carga. Usaremos o programa cpuburn disponível nos repositórios (para Neo e Zero, usaremos o comando burnCortexA7, para Neo2 - burnCortexA8).
Bem, diga ...
Todas as placas de placa única atingem facilmente uma temperatura de 80 graus com quatro cópias de cpuburn - o resfriamento passivo é trivial para lidar com esse aquecimento. No entanto, acredito que, no caso do Vindinium, nem tudo será tão triste - há uma mudança cíclica na fase do trabalho e do tempo de inatividade (aguardando uma resposta do servidor), e o próprio programa cpuburn foi projetado para a dissipação de calor mais eficiente; pelo menos devido à necessidade de aguardar dados da RAM, porque nossa tarefa não poderá acomodar completamente no cache do processador.
No entanto, um recurso interessante aparece aqui - o Orange Pi Zero atinge 80 graus, mesmo com uma única cópia do cpuburn, para o Neo2 três cópias são suficientes e o Neo para quatro cópias do teste.
Benchmarks, as pessoas exigem pão e benchmarks!
Antes de escrever a IA, você precisa determinar a pergunta mais importante: quantas vezes esses computadores de placa única são mais fracos que os computadores convencionais? Não acredito que um pequeno pedaço de silício, metal e textolite possa fazer algo fora do comum.
Para benchmarks, foi utilizado o utilitário
phoronix-test-suite .
Em contraste com todos os players de placa única, permito-me incluir meu laptop (i5 2450M, 6gb DDR3, sem gráficos discretos, executando o Ubuntu 16.04 LTS) em testes para facilitar o desenvolvimento da IA (será possível executar certas partes do código e saber quantas vezes ele será alterado o tempo de operação da mesma peça em placa única). Usamos apenas refrigeração passiva. Para uma unidade de produtividade, pegamos uma laranja.
UPD: enquanto o artigo estava sendo moderado, um computador antigo foi encontrado próximo a casa (
Intel Pentium 4 (1 núcleo, 2 threads, 2003, um processador de pré-processador em sua arquitetura), 512MB DDR x2, Radeon 9600XT 128MB DDR), treze anos atrás, esse sistema pode foi chamado forte. Para comparar como foi, instalei o
Windows 10 Ubuntu 16.04 LTS, que, para minha surpresa, acabou sendo muito funcional.
| Computador portátil | Computador de dinossauro | Pi laranja zero | NanoPi Neo | NanoPi Neo2 |
---|
John The Ripper 1.8.0, Teste: Blowfish (papagaios / s) | 797 C / S reais (+ 125%) | 313 C / S reais (+ 125%) | 354 Real C / S | 394 Real C / S (+ 11%) | 475 C / S reais (+ 34%) |
Smallpt V1.0.2 (segundos) | 586 segundos (4,6 vezes mais rápido) | 1214 segundos (2,2 vezes mais rápido) | 2694 segundos | 2240 segundos (1,2 vezes mais rápido) | 1289 segundos (2.08 vezes mais rápido) |
C-Ray v1.1 (segundos) | 120,86 segundos (5,03 vezes mais rápido) | 294,61 segundos (2,37 vezes mais rápido) | 607,83 Segundos | 485,71 segundos (1,25 vezes mais rápido) | 349,51 segundos (1,74 vezes mais rápido) |
Himeno Benchmark v3.0 (Papagaios) | 1165.11 MFLOPS (+ 8908%) | 385,28 MFLOPS (+ 2455%) | 15.08 MFLOPS | 13.08 MFLOPS (15% mais fraco) | 37,23 MFLOPS (+ 185%) |
Pressionar 7zip (papagaios) | 5010 MIPS (+ 585%, grande desvio da média: 22,77%) | 1706 MIPS (+ 88%) | 857 MIPS | 950 MIPS (+ 11%) | 1103 MIPS (+ 29%) |
ffmpeg (segundos) | 30.69 segundos (13.25 vezes mais rápido) | 81,22 segundos (5 vezes mais rápido) | 406.76 Segundos | 426,94 segundos (5% mais lento) | O teste não foi iniciado - erro de compilação |
Custo considerando entrega e radiadores | $ 283,39 (+ 2046%) | - | 13.67 $ | 15,97 $ (+ 17%) | US $ 22,97 (+ 68%) |
Ao estudar as informações na Internet, ficou claro que o H2 + é uma
versão ligeiramente modificada do H3 :
H2 + é uma variante do H3 projetada para unidades OTT de baixo desempenho que carecem de suporte a Gigabit MAC e 4K HDMI.
Original:
O H2 + é uma variante do H3, direcionada para caixas OTT low-end, que não possuem suporte a saída Gigabit MAC e 4K HDMI.
Nesse caso, torna-se interessante por que razão existe uma diferença de desempenho e regime térmico entre H2 + e H3.
Para resumir.
Comparando três placas individuais diferentes, posso resumir:
- Orange Pi Zero é sem dúvida o mais barato de todos. Ter o Wi-Fi a bordo é uma vantagem muito boa, mas sua velocidade não é superior a 4 Mbps (cheguei ao mesmo valor), o que exclui o uso como um servidor de arquivos sem fio normal, mas para a IoT, ele se encaixa perfeitamente . Você deve comprar pelo menos algum radiador, para não ter problemas com temperaturas anormais, mesmo em tempo ocioso. Há outro lado bonito - a presença da TV-OUT, com a qual eu consegui trabalhar, mas se você estiver procurando por uma placa única para trabalhar no modo gráfico, deve procurar a direção dos dispositivos com HDMI, porque a resolução da tela de 720x576 não é agradável aos olhos. É muito conveniente que a loja oficial do fabricante esteja disponível no Aliexpress;
- O NanoPi Neo, diferentemente do irmão mais novo, é privado de TV-OUT e Wi-Fi embutido (para operação sem fio, você precisará comprar um dongle Wi-Fi por 2 a 3 dólares, cuja taxa de transferência de dados é de cerca de 150 Mbps) e por si só, vai para a quinta parte mais cara, mas pode nos agradar com menor dissipação de calor, um radiador de som firme, maior desempenho, que cobrirá todas as deficiências da plataforma. Também vale a pena notar a grande variedade de componentes oferecidos pelo fabricante para sua prole. Outra nuance é que você precisa fazer o pedido no site oficial, embora isso não seja tão difícil;
- NanoPi Neo2. A versão do firmware do armbian está na fase experimental, que é expressa nos problemas descritos no artigo (incapacidade de ver a frequência, erro ao compilar ffmpeg). No entanto, mesmo em sua forma bruta, o segundo advento do Neo pode apresentar desempenho muito bom em testes (lembre-se da arquitetura de 64 bits), Gigabit Ethernet, que imediatamente o eleva como favorito para as tarefas em que são necessários bom desempenho e velocidade na transferência de dados com fio. Mas não se esqueça do Ubuntu Core, a situação pode ser melhor e o armbian não fica parado. Em termos de custo, é claro, é mais de uma vez e meia superior a uma laranja; portanto, vale a pena olhar para os concorrentes em seu segmento de preços.
Por mim, decidi continuar trabalhando com Neo e Neo2 e reservei uma laranja até que uma idéia interessante para uma casa inteligente apareça, porque O desempenho do Neo é muito semelhante ao Zero, mas sem problemas de temperatura.
No próximo artigo, escolheremos uma nova linguagem de programação para nós mesmos, que você poderá aprender imediatamente ao escrever AI.
→
Link para Vindinium→ O
link para o subreddit Vindinium é uma coisa muito útil, você pode acompanhar meus movimentos no Vindinium
→
Link para o meu github com uma pequena quantidade de trabalho no VindiniumFicarei muito satisfeito se mais pessoas forem atraídas para este jogo, porque durante a rivalidade a diversão começa!