Больше ARM’ов, хороших и разных, но все ли они “одинаково полезны” ?
Два производителя - AllWinner и Rockchip. Два чипа - AllWinner A20 и Rockchip RK3066 - выведены в секретных лабораториях Поднебеcной для порабощения человечества.
Они киборги, они заполонили… Нет, правда - они встречаются в планшетах и приставках, производящихся по сей день. Короче, enough bullshit, в продолжении заметки - смертельная битва двух бюджетных двухядерников.
Antutu отдыхает - только Linux, только реальные кейсы, только хардкор. К делу.
Попробуем посчитать на обоих чипах немножко litecoins. Считать будем, конечно же, на процессоре с помощью cpuminer, используя алгоритм scrypt.
Kernel
AllWinner A20
# uname -a Linux armstick 3.4.90-znoxx+ #2 SMP Sun Jul 27 23:07:31 MSK 2014 armv7l GNU/Linux
Rockchip RK3066
# uname -a Linux rk3066 3.0.8+ #1 SMP PREEMPT Thu Nov 29 23:53:42 CET 2012 armv7l GNU/Linux
CPU Info
AllWinner A20
$ cat /proc/cpuinfo Processor : ARMv7 Processor rev 4 (v7l) processor : 0 BogoMIPS : 1819.52 processor : 1 BogoMIPS : 1819.52 Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 4 Hardware : sun7i Revision : 0000 Serial : 0000000000000000
Rockchip RK3066
# cat /proc/cpuinfo Processor : ARMv7 Processor rev 0 (v7l) processor : 0 BogoMIPS : 503.83 processor : 1 BogoMIPS : 503.83 Features : swp half thumb fastmult vfp edsp neon vfpv3 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x3 CPU part : 0xc09 CPU revision : 0 Hardware : RK30board Revision : 0000 Serial : 0000000000000000
Майнер собрано с одинаковыми опциями для обоих систем, да и версия GCC одинаковая
#./configure CFLAGS="-O3 -mfpu=neon" #gcc --version gcc (Debian 4.6.3-14) 4.6.3
Пора запускать
#####AllWinner A20
~/cpuminer-2.4.1$ ./minerd --benchmark [2015-03-23 10:00:55] 2 miner threads started, using 'scrypt' algorithm. [2015-03-23 10:00:55] Binding thread 1 to cpu 1 [2015-03-23 10:00:55] Binding thread 0 to cpu 0 [2015-03-23 10:01:06] thread 1: 4098 hashes, 0.36 khash/s [2015-03-23 10:01:07] thread 0: 4098 hashes, 0.34 khash/s [2015-03-23 10:01:11] thread 0: 1365 hashes, 0.36 khash/s [2015-03-23 10:01:11] thread 1: 1806 hashes, 0.37 khash/s [2015-03-23 10:01:11] Total: 0.73 khash/s [2015-03-23 10:01:16] thread 0: 1782 hashes, 0.34 khash/s [2015-03-23 10:01:16] thread 1: 1875 hashes, 0.38 khash/s [2015-03-23 10:01:16] Total: 0.72 khash/s [2015-03-23 10:01:21] thread 0: 1719 hashes, 0.34 khash/s [2015-03-23 10:01:21] thread 1: 1890 hashes, 0.38 khash/s [2015-03-23 10:01:21] Total: 0.72 khash/s
RockChip RK3066
~/cpuminer-2.4.1$ ./minerd --benchmark [2015-03-22 13:39:55] 2 miner threads started, using 'scrypt' algorithm. [2015-03-22 13:39:55] Binding thread 0 to cpu 0 [2015-03-22 13:39:55] Binding thread 1 to cpu 1 [2015-03-22 13:40:00] thread 1: 4098 hashes, 0.93 khash/s [2015-03-22 13:40:00] thread 0: 4098 hashes, 0.88 khash/s [2015-03-22 13:40:05] thread 1: 4635 hashes, 0.90 khash/s [2015-03-22 13:40:05] Total: 1.77 khash/s [2015-03-22 13:40:05] thread 0: 4389 hashes, 0.85 khash/s [2015-03-22 13:40:10] thread 1: 4482 hashes, 0.90 khash/s [2015-03-22 13:40:10] Total: 1.75 khash/s [2015-03-22 13:40:10] thread 0: 4269 hashes, 0.85 khash/s [2015-03-22 13:40:15] thread 1: 4482 hashes, 0.90 khash/s [2015-03-22 13:40:15] Total: 1.75 khash/s
Хм… Два процессора в одной весовой категории, однако Rockchip “выдает” почти в 2 раза больше.
Проверим еще одну настройку, а именно реальную частоту процессора.
RockChip RK3066
#cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq 252000 #cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 1608000 #cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 1200000
AllWinner A20
#cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq 60000 #cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 1008000 #cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 912000
Текущая частота процессра RK3066 больше, чем у Allwinner (замер происходил в момент прогона benchmark’ов).
Решим простую пропорцию (хотя с точки зрения тестирования производительности это врядли правильно).
(1200000*0.37)/912000 = 0.48
Вроде как получается, что в случае, если бы AllWinner работал на частоте 1.2Ghz, то можно было бы наблюдать цифру 0.48 или около, что, в целом все равно никак не дотягивает до увиденных 0.85…0.90.
Конечно, с точки зрения “майнера” это даже не копейки, это просто мусор (пара центов в общепризнанной валюте - то есть в USD - будет “майниться” несколько месяцев, а то и лет).
Для сравнения - мобильный Core i5 на частоте около двух гигагерц выдает порядка 3 KH/S на поток. При этом это hyperthreading, а не честные физические ядра. А уж специализированные майнеры на ASIC или хотя бы GPU - много больше.
Однако, системы на AllWinner A20 вполне хватает на:
- Поддержание работы OwnCloud (Apache, PHP, MySQL)
- Запуск TiddlyWiki через NodeJS
- TOR
- Privoxy
- i2p@Java 8
- QBitTorrent
- LVM
И это всё одновременно.
“Исследование” не претендует на полноту и точность, а лишь показывает, что не только Mhz <> Performance, так еще и одинаковое количество ядер приводит порой к совсем разным результатам.