vak: (Улыбка)
[personal profile] vak
Установив Debian, скачиваем исходники теста Dhrystone и измеряем скорость процессора MediaTek MT7688, установленного на плате LinkIt Smart.


(mylinkit) ~ # svn checkout https://subversion.assembla.com/svn/vak-opensource/trunk/utilities/dhrystone
A dhrystone/Makefile
A dhrystone/RATIONALE
A dhrystone/README
A dhrystone/README_C
A dhrystone/VARIATIONS
A dhrystone/dhry.h
A dhrystone/dhry_1.c
A dhrystone/dhry_2.c
A dhrystone/dhry_c.dif
A dhrystone/submit.frm
Checked out revision 30.
(mylinkit) ~ # cd dhrystone/
(mylinkit) dhrystone # make
cc -O3 -DNRUNS=100000000 -Wall -Werror -c -o dhry_1.o dhry_1.c
cc -O3 -DNRUNS=100000000 -Wall -Werror -c -o dhry_2.o dhry_2.c
cc -o dhrystone dhry_1.o dhry_2.o
(mylinkit) dhrystone # ./dhrystone

Dhrystone Benchmark, Version 2.1 (Language: C)

Execution starts, 100000000 runs through Dhrystone
Execution ends
[...]
Nanoseconds for one run through Dhrystone: 896.8
            Million Dhrystones per Second: 1.115
                                    DMIPS: 634.7


Сравнивая с таблицей результатов в интернете и интерполируя, можно видеть, что процессор MT7688 580MHz работает примерно со скоростью Pentium II 400MHz. Некоторая "отсталость" объясняется тем, что MT7688 имеет 16-битную шину памяти DRAM, а Pentium II - 64-битную. Ну и потребление отличается на два порядка.

Date: 2016-01-10 05:03 (UTC)
From: [identity profile] panchul.livejournal.com
При этом MIPS 24KEc внутри MT7688 можно в принципе заставить работать и на частоте 1.4 GHz на 40 nm, а вот до скольки MHz можно было разогнать Pentium II на 40 nm?
Edited Date: 2016-01-10 05:04 (UTC)

Date: 2016-01-10 15:10 (UTC)
From: [identity profile] skif-by.livejournal.com
Хм. А нет ли тут демпинга в стиле broadcom + raspberry?
PS. Как раз вчера эту платку с почты забрал, а тут и пост про Debian подоспел...:)

Date: 2016-01-10 19:54 (UTC)
From: [identity profile] skif-by.livejournal.com
Тогда это просто прекрасно. Правда, думал сегодня про запас ещё пару плат взять, сунулся на seeedstudio - обе версии в backorder :)

Date: 2016-01-10 17:47 (UTC)
From: [identity profile] sjtonic.livejournal.com
Какой он бы не был хороший по характеристикам, если не будет такой же экосистемы софта и железа как под Raspberry Pi и Arduino, то с трудом верю что он взлетит.
Как, например, не взлетает ESP8266 - шума много, а выхлопа особого нет

Date: 2016-01-10 19:53 (UTC)
From: [identity profile] sjtonic.livejournal.com
То что я слышал и читал про ESP8266 - это многочисленные жалобы на проблемы и глюки.

> Конечно, Raspberry Pi тоже все это может, но проигрывает в разы по потреблению и деньгам.
Если будет продолжен выпуск Raspberry Pi Zero по цене в $5, то проигрыша особого то и нет. По данным в MagPi в формате Raspberry Pi Zero с ТВ подключенным по HDMI и подключенными клавиатурой и мышкой потребляет 160 мА.
По крайней мере, я свой экземпляр Raspberry Pi Zero уже получил :)

Date: 2016-01-10 22:55 (UTC)
From: [identity profile] sir66.livejournal.com
У Raspberry Pi Zero и вообще у Raspberry Pi нет онбордного WiFi что удорожает большинство решений и съедает USB порт, как минимум. Так что Raspberry это решение для немного других применений.

А все эти микроплатформы сильно губит их сегментация - подобных контроллеров куча, но им всем далеко даже до Raspberry Pi по тиражности, там какие то десятки тысяч против миллионов. Оттого и сырой софт, проблемы с поддержкой устройств и т.д и т.п.

Date: 2016-01-16 21:15 (UTC)
From: [identity profile] sir66.livejournal.com
Проблема в том числе и в том, что все эти чипы, насколько я понимаю, изначально ориентированы на создание разного рода роутеров и точек доступа WiFi (это наиболее массовый рынок). И от того в них, насколько я понимаю, отсутствуют средства внятного управления электропитанием позволяющие уходить в разного рода спящий или полуспящий режим с низким энергопотреблением. Я пытался понижать тактовую частоту (вроде вдвое) у MR703n (он на A9331) и это не привело к существенному снижению потребления (было 120, стало чуть меньше 100ma без нагрузки). Из за этого сделать на таких чипах что то автономное для мониторинга довольно сложно.

В этом смысле выделяется как раз ESP8266, он спать умеет, но он слабый. Ты не смотрел в сторону переноса на него Retro или Light? Вроде памяти должно хватить.

Развитое управление питанием есть у процессоров для сматрфонов, но они заметно дороже, насколько я понимаю.
Edited Date: 2016-01-16 21:16 (UTC)

Date: 2016-01-31 14:17 (UTC)
From: [identity profile] sir66.livejournal.com
Как раз на ESP8266 никакой Линукс не помещается, там какой то собственный микростек.

Date: 2016-01-31 14:24 (UTC)
From: [identity profile] sir66.livejournal.com
Кстати, упомянутая тобой ESP32 (http://makezine.com/2015/12/09/meet-esp32-new-big-brother-to-iot-board-esp8266/) как раз точно прод LiteBSD попадает по памяти (400Kb)
Edited Date: 2016-01-31 17:11 (UTC)

Date: 2016-02-01 03:14 (UTC)
From: [identity profile] sir66.livejournal.com
А RetroBSD c IP стеком?

Date: 2016-03-01 17:29 (UTC)
ext_646638: (Default)
From: [identity profile] rdia.livejournal.com
Как мне кажется, в embedded всякие Питоны и ЯваСкрипты - должны быть полным ужасом. В программах на них обычно очень много ошибок.

Тут скорее наоборот, какой-нибудь суровый статически типизированный Haskell с Ocaml'ом взлетели бы. Ну или go, на худой конец.

Date: 2016-01-10 20:47 (UTC)
From: [identity profile] morontt.livejournal.com
Whetstone совсем не интересен?

Date: 2016-01-20 23:35 (UTC)
From: [identity profile] zyxman.livejournal.com
Разница от того что ARM не является суперскалярным - он как и Pentium ДО-MMX выполняет одну команду за один такт.

Точнее там есть нюансы для Пентиума - специально оптимизированные компилятором программы он может выполнять две команды за дакт, но без оптимизации будет одна.

А начиная с Pentium-MMX уже х86 выполняли почти любые две команды за один такт.

Ну точнее Pentium-MMX по каким-то причинам оказался тупиковой ветвью эволюции, но Pentium-pro и он-же Pentium-II и последователи, уже полноценно почти всегда исполняли две команды за такт.

И да, как раз за счет отсутствия суперскалярности потребление значительно меньше, конечно не на два порядка но в разы точно.

А скорость памяти и ширина шины памяти не сильно влияют, потому что данная задача считается в кеше.
- Если-бы данная задача была завязана на память то там бы проседание ARM было намного больше, потому что RISC принципиально очень медленно работают с памятью.

Date: 2016-01-20 23:49 (UTC)
From: [identity profile] zyxman.livejournal.com
Сорри. Не прочитал что он MIPS. Это конечно сильно меняет дело. Но в любом случае замечание насчет памяти уместно ибо тоже RISC.

Я где-то пытался разбираться с особенностями архитектуры MIPS, и пришел к выводу, что там всё сложнее чем с ARM в том смысле что коэффициент отношения команд к тактам у MIPS получается нецелый, но кажется несколько лучше чем у ARM, там у меня выходило что-то типа 1.3 команды за такт, при том что у Pentium Pro 2 команды за такт.

Почему так - это как раз какой-то компромисс между суперскалярностью и потреблением - точно подробности не помню, но по-моему он какие-то команды просто не может выполнять сразу две парой и в среднем и выходит число между 1 и 2.

Date: 2016-01-21 07:04 (UTC)
From: [identity profile] zyxman.livejournal.com
Да, конечно зависит от микроархитектуры. Но вот в конкретно данном случае я подразумевал что не из-за ширины шины памяти скорость просела, а из-за чего-то другого.

Если это чего-то не микроархитектура, то возможно это чего-то в ключах компилятора, а может даже где-то баг, или чего-то недокументированное вылезло, типа известной фичи х86, когда он инвалидирует линейку кеша которую прочитали.

- Ну просто как на мой на данный момент очень поверхностный взгляд, размер кеша слишком большой чтобы этим тестом получить настолько много кеш-промахов, чтобы производительность просела аж на десятки процентов.