На склад поступили жидко-кристаллические индикаторы и дисплеи от KSE
РадиоЛоцман - Все об электронике

Расширенный тест производительности Raspberry Pi 3. Часть 1

Raspberry Pi 3 Model B

Christopher Stanton, element14

Не так давно на нашем портале была опубликована довольно интересная статья «Сравнение популярных Linux-платформ для встраиваемых приложений», в которой на основе выполнения тестов и измерений мы дали оценку производительности и возможности применения той или иной платы в пользовательских устройствах или приложениях. В феврале 2016 г. компании RS Components и element14 анонсировали следующее поколение популярного одноплатного компьютера - Raspberry Pi 3 Model B. Несмотря на то, что габаритные размеры и цена остались неизменными, плата получила мощный 64-разрядный процессор и интерфейсы беспроводной передачи данных Wi-Fi и Bluetooth.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Анонсирован одноплатный компьютер Raspberry Pi 3 Model B на 64-разрядном процессоре A53
Рисунок 1. Одноплатный компьютер Raspberry Pi 3.

В связи с этим для многих разработчиков и любителей будет интересным более подробно узнать о вычислительных ресурсах и реальной производительности Raspberry Pi (RPi) 3 в сравнии с предыдущими моделями.

При подготовке отчета по производительности RPi3 мы использовали большой набор программных тестов из коллекции Роя Лонгботтома, которые выполнялись на аппаратном уровне. Кроме того, мы предоставим некоторую информацию по энергопотреблению в режиме ожидания. Сразу отметим одну техническую особенность: в тестах производительности мы хотели задействовать драйвер OpenGL, который доступен в последней версии операционной системы (ОС) Raspbian, но используемые программные тесты на данный момент несовместимы с ним. Тем не менее, графический процессор VideoCore является частью ARM процессора, который практически не изменился с момента выпуска самой первой модели RPi.

Информация о процессоре

Итак, для нашего подробного сравнительного анализа производительности было выбрано три модели одноплатного компьютера Raspberry Pi (Таблица 1).

Таблица 1. Одноплатные компьютеры Raspberry Pi, участвующие в тестировании.
Модель Raspberry Pi 3 Model B Raspberry Pi 2 Model B Raspberry Pi Model B+
Процессор Четырехядерный 64-битный
ARMv8 Cortex A53 BCM2837
Четырехядерный 32-битный
BCM 2836 ARMv7 Cortex A7
Одноядерный 32-битный
BCM2835 ARMv11
Тактовая частота 1.2 ГГц / ядро 900 МГц / ядро 700 Мгц
Макс. потребление 2.5 A 1.8 A 1.8 A

Во всех трех модификациях плат RPi оперативная память работает на тактовой частоте 400 МГц. Небольшое отличие состоит в том, что RPi 3 имеет 64-разрядный ARMv8 процессор, однако, ОС Raspbian на момент проведения тестов не имеет 64-битной поддержки. Отчасти это связано с обратной совместимостью RPi 3 с предшествующими моделями. ОС Debian в течение последних лет наращивает свою поддержку 64-битных систем и, возможно, в скором времени появится сборка Jessie Debian с 64-битной поддержкой для RPi 3.

Перед тем как начать тестирование и сравнительный анализ мы решили выполнить несколько команд в ОС, чтобы получить более подробную информацию о процессоре и поддерживаемых инструкциях (Таблица 2).

Таблица 2. Результат выполнения команды cpuinfo.
Команда: cpuinfo
Плата: Raspberry Pi 3 Model B Raspberry Pi 2 Model B Raspberry Pi Model B+
Processor: 0 0 0
model name: ARMv7 processor rev 4 (v7l)   ARMv7 Processor rev 5 (v7l) ARMv6- compatible processor rev 7 (v6l)
BogoMIPS: 76.80 57.60 2.00
Features: half thumb fastmult vfp edsp
neon vfpv3 tls vfpv4 idiva idivt
vfpd32 lpae evtstrm crc32    
half thumb fastmult vfp edsp
neon vfpv3 tls vfpv4 idiva idivt
vfpd32 lpae evtstrm
half thumb fastmult vfp edsp java tls
CPU implementer: 0x41 0x41 0x41
CPU architecture: 7 7 7
CPU variant: 0x0 0x0 0x0
CPU part: 0xd03 0xc07 0xb76  
CPU revision: 4 5 7
  <... далее для каждого ядра ...> <... далее для каждого ядра ...>  
Hardware: BCM2709 BCM2709 BCM2708
Revision: a02082 a01041 0010
Serial: 0000000056163283 000000008e511ef0 000000007a4bc337

При выполнении команды cpuinfo на плате RPi, процессор идентифицируется как ARMv7, что может свидетельствовать о программной ошибке, и после обновления ядра/прошивки процессор будет определяться корректно, как ARMv8. Новинкой во встроенном функционале процессора RPi 3 является блок CRC32.

Таблица 3.  Результат выполнения команды lscpu.
Команда: lscpu
Плата: Raspberry Pi 3 Model B Raspberry Pi 2 Model B Raspberry Pi Model B+
Architecture: armv7l armv7l armv6l
Byte Order: Little Endian Little Endian Little Endian
CPU(s): 4 4 1
On-line CPU(s) list:   0-3 0-3 0
Thread(s) per core: 1 1 1
Core(s) per socket: 4 4 1
Socket(s): 1 1 1
Model name: ARMv7 Processor rev 4 (v7l) ARMv7 Processor rev 5 (v7l) ARMv6-compatible processor rev 7 (v6l)
CPU max MHz: 1200.0000 900.000 700.0000  
CPU min MHz: 600.0000 600.000 700.0000

С помощью команды lscpu (Таблица 3) мы тоже наблюдаем некорректную идентификацию процессора RPi 3, но при этом мы видим, что процессор RPi 3 может выполнять масштабирование тактовой частоты (что можно дополнительно подтвердить командой lshw), также как RPi 2. Также теперь мы ясно видим, что RPi2 и RPi 3 работают под управлением четырехядерного процессора.

Вы можете самостоятельно запустить эти команды на своей плате RPi с ОС Raspbian, запущенной в терминальном режиме или в графическом интерфейсе в окне терминала. Для установки cpuinfo и lscpu необходимо выполнить следующие команды:

sudo apt-get update
sudo apt-get install lscpu cpuinfo lshw

Энергопотребление

Энергопотребление плат в режиме ожидания (простоя) мы измеряли с помощью простого, но удобного гаджета – USB-тестера (Рисунок 2). Данное устройство подключается между источником питания и потребителем и позволяет измерить напряжение, потребляемый ток и мощность. Оно вполне подойдет для наших целей.

USB-тестер, используемый для измерения энергопотребления Raspberry Pi
Рисунок 2. USB-ампервольтметр для измерения
энергопотребления Raspberry Pi.

Каждая плата RPi была сконфигурирована на загрузку в терминальном режиме, графический пользовательский интерфейс (Окно X) не загружался. К плате были подключены только 19'' широкоформатный монитор через адаптер HDMI-DVI, клавиатура Dell, карта памяти microSD 16 Гбайт 10 класса и блок питания 5 В/2 А. Сетевой интерфейс при этих измерениях не задействован, хотя мы можем заметить, что при активном Ethernet-подключении энергопотребление плат возрастало. Как видно, энергопотребление RPi 3 в режиме простоя несколько больше, чем у предшественников. Это, скорее всего, связано с тем, что интегрированный Wi-Fi адаптер находился в активном состоянии, без подключения к какой-либо точке доступа. Адаптер Bluetooth 4.1 неактивен, ввиду того, что не загружались какие-либо драйверы или ПО, использующее его.

Таблица 4. Энергопотребление плат Raspberry Pi.
Raspberry Pi 3 Model B Raspberry Pi 2 Model B Raspberry Pi Model B+
5.19 В 1.141 Вт 5.19 В 1.141 Вт 5.19 В 1.141 Вт
0.22 А 00006 мАч 0.20 А 00102 мАч 0.19 А 00003 мАч

Тест SysBench

SysBench – модульный, кроссплатформенный и многопоточный программный инструмент, который позволяет быстро получить представление о производительности системы. Изначально он был предназначен для сравнительного анализа файловых операций ввода/вывода и операций с базами данных. Благодаря открытому исходному коду он постепенно превратился в инструмент всестороннего теста системы, включающего в себя тест процессора, подсистемы файлового ввода/вывода и баз данных.

Тестирование процессора в SysBench заключается в вычислении простых чисел. Это означает, что он не проверяет все возможности процессора. Результаты приведены в Таблице 5 и 6.

Тест запускался со следующими параметрами:

sysbench --num-threads=1 --test=cpu --cpu-max-prime=20000 --validate run
sysbench --num-threads=4 --test=cpu --cpu-max-prime=20000 --validate run

где:

  • sysbench – имя программы для выполнения;
  • --num-threads – число потоков, в которых будут выполняться вычисления. Тест мы запускали с 1 и 4 потоками, это означает, что мы создаем 1 или 4 процесса  и запускается 1 процесс для каждого ядра. Так как RPi B+ выполнено на одноядерном процессоре имело смысл запустить тест на одно ядро на каждой модели;
  • --test=cpu – параметр указывает, что мы будем проверять производительность процессора;
  • --cpu-max-prime – максимальное значение простого числа, которое мы хотим вычислить;
  • --validate – параметр гарантирует корректность результата;
  • run – программа может провести эмуляцию, вместо того чтобы реально выполнить указанный тест, поэтому данным параметром мы запускаем тест на выполнение.
Таблица 5. Результаты теста SysBench (однопоточные вычисления).
Плата: Raspberry Pi 3 Model B Raspberry Pi 2 Model B Raspberry Pi Model B+
Total time:  477.0617 с 768.6476 с 1318.933 с
per request statistics:  
min. 47.69 мс 76.42 мс   131.59 мс
avg. 47.7 мс 76.86 мс   131.89 мс
max. 49.91 мс 82.15 мс   300.23 мс
diff between min and max: 2.22 мс 5.73 мс 168.64 мс

Результат по общей скорости выполнения теста (Total time) показывает разницу на 94% при сравнении платы RPi 3 с RPi B+ и на 47% в сравнении с RPi2. Наибольший интерес в результатах теста представляет разница между минимальным и максимальным значением времени выполнения запросов (diff between min and max). RPi 3 показывает прирост скорости выполнения на 194% по отношению к первой модели и на 88% в сравнении с RPi 2. Именно по этому параметру видно, что RPi 3 выполняет запросы намного быстрее.

Таблица 6. Результаты теста SysBench (4 потока).
Плата: Raspberry Pi 3 Model B Raspberry Pi 2 Model B Raspberry Pi Model B+
Total time:  119.4716 с 191.8972 с 1321.493 с
per request statistics:  
min. 47.69 мс 76.38 мс 412.94 мс
avg. 47.78 мс 76.74 мс 528.54 мс
max. 59.04 мс 101.45 мс 573.00 мс
diff between min and max: 11.35 мс 25.07 мс 168.64 мс

Тест с 4 потоками вычислений является немного несправедливым по отношению к RPi B+, имеющей одноядерный процессор, поэтому не удивительно, что общее время выполнения теста на ней слишком велико. Плата RPi 2 в этом тесте при работе со всеми 4 ядрами немного сократила разрыв, хотя RPi 3 продолжает опережать на 75% по разнице между минимальным и максимальным временем обработки запросов. В целом разница в общей скорости выполнения теста сохранилась на уровне 47%.

В целом, на данном этапе RPi 3 выходит на первое место, хотя было бы интересно взглянуть на результаты данного теста в условиях "разогнанной" RPi 2. Тем не менее, нужно помнить, что вычисление простых чисел не является единственной функцией процессора.

Окончание

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: A Comprehensive Raspberry Pi 3 Benchmark. Part 1

AiPCBA
Весь мир
RASPBERRYPI3-MODELB-1GB
Raspberry Pi
3 573 ₽
Элитан
Россия
RASPBERRY-PI-3-MODEL-B
Raspberry Pi
21 586 ₽
T-electron
Россия и страны СНГ
RASPBERRYPI3MODELB
360 773 ₽
Utmel
Весь мир
RASPBERRYPI3-MODELB-1GB
Raspberry Pi
по запросу
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя