LINUX.ORG.RU
ФорумTalks

ARM рулит


0

1

Сижу, компиляю ядро под ARM-железку. И с удивлением замечаю, что компиляется за примерно вдвое меньшее время, чем под amd64.

Т.к. и там и там используется gcc, можно сказать, что в x86(-64) ветке linux куча раздутого кода

Т.е. компиляю на одной машине ядро для amd64 и ядро для arm - кросскомпиляцией.

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 1)

В RISC просто некуда воткнуть оптимизацию на уровне замены нескольких «маленьких» инструкций на одну «большую».

PolarFox ★★★★★
()

Не пробовал отключать сборку лишних модулей для x86? Уж наверняка их в разы поболее, чем для arm.

Deleted
()
Ответ на: комментарий от Deleted

Не пробовал отключать сборку лишних модулей для x86?

Ну разумеется пробовал. И приведенное сравнение уже учитывает это выкидывание

cvs-255 ★★★★★
() автор топика

Возможно, что код для ARM оптимизируется менее тщательно.

Manhunt ★★★★★
()

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

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

А смысл компилять на разных тачках? Производительность то процессора разная.

А так я компиляю ядра для amd64 и arm на одной тачке. И потому могу сравнивать

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

на одной тачке.

ааа, а я думал ты на арме собираешь и арм всех порвал. Жаль, чуда не случилось :(

true_admin ★★★★★
()
Ответ на: комментарий от true_admin
jet@earth:~/projects/crtmpserver/builders/cmake/build$ rm -rf *
jet@earth:~/projects/crtmpserver/builders/cmake/build$ cmake .. -DCRTMPSERVER_INSTALL_PREFIX=/opt/crtmpserver > log_x86.out 2>&1
jet@earth:~/projects/crtmpserver/builders/cmake/build$ time (make >> log_x86.out 2>&1)

real    0m55.480s
user    0m42.339s
sys     0m8.477s
jet@earth:~/projects/crtmpserver/builders/cmake/build$ rm -rf *
jet@earth:~/projects/crtmpserver/builders/cmake/build$ cmake .. -DCRTMPSERVER_INSTALL_PREFIX=/opt/crtmpserver -DTOOLCHAIN_ROOT=~/work/toolchains/arm-2011.09 -DTARGET_ENV_ROOT=~/work/arm-env -DCMAKE_TOOLCHAIN_FILE=../toolchain-sourcery_g++_lite.cmake > log_arm.out 2>&1
jet@earth:~/projects/crtmpserver/builders/cmake/build$ time (make >> log_arm.out 2>&1)

real    1m10.158s
user    0m59.604s
sys     0m6.948s
jet@earth:~/projects/crtmpserver/builders/cmake/build$

Из флагов компиляции только -О2 да -Wall

Jetty ★★★★★
()
Ответ на: комментарий от Jetty

Правда сравнение несколько не корректно, т.к.
gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-70)
gcc version 4.6.2 (Debian 4.6.2-12)

Но думаю такая минорная разница врядли сильно повлияла бы на результат.

Jetty ★★★★★
()
Ответ на: комментарий от Jetty

извини, я неправильно топик понял. Я думал что арм обогнал интель. Оказалось всё гораздо проще, речь шла о кросс-компиляции.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Если чесно мне самому стало интерестно, т.к. и правда замечал что ядро для арма собирается быстрее(в разы?).. Я думаю что там просто нет столько «лишнего» кода.

Jetty ★★★★★
()
Ответ на: комментарий от Jetty

нет столь обширного кол-ва девайсов, а следственно и драйверов.

daemonpnz ★★★★★
()
Ответ на: комментарий от daemonpnz

У них там N270 заявлен как двухъядерник. Фороникс, блин.

Да и pandaboard это старая тачка. Интересно, например, tegra3 vs E350.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

С потоками перепутали товарищи. Ну а с тегрой3 трудновато будет сравнить, ибо линух трудно завести на том, что предоставляет невидия.

daemonpnz ★★★★★
()

ARM рулит

Я 2 недели искал багу в сисколе для когерентности кеша на процессоре с VIPT кешем и могу сказать только: ОЛОЛО!

AptGet ★★★
()
Ответ на: комментарий от true_admin

ээ, я думаю tegra3 порвёт её.

Пока что tegra причмокивает. В том числе и по причине крайней закрытости

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от true_admin

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

pekmop1024 ★★★★★
()
Ответ на: комментарий от Jetty

так, что ты имеешь в виду «актуальный прототип следующего поколения смартов»? Мощность проца или массо-габаритные характеристики? :)

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Ну следующего... ща затишье такое... Судя по обзорам летом что-то случится :)
Ближе к лету и на тегре3 что-то сделают...

Jetty ★★★★★
()
Ответ на: комментарий от true_admin

нудануда :))) Эта ш бабло... Просто у всех одна и та же проблемка: как заставить полноценно работать гавнокод от гугла, на гавнодрайверах собственного производства на недотестеных гавноSoCах недопонятого арма :) К этому стоит добавить такие гавнотехнологии как OpenGL ES 2.0, гавноWLANы на пару с блютусами и литийонными технологиями запитывания этого барахла.
Как ни откроешь тематический форум там одна и та же песня... Только у яблочников жалобы не такие... но там у них просто ничего нет, а если нет, значит богу неугодно :)

Jetty ★★★★★
()

ARM рулит, но нужен стандартный неогороженный загрузчик, который на большинстве железок будет стоять.

Quasar ★★★★★
()
Ответ на: комментарий от true_admin

Тегра 3 сольется. Там видяха слабая, да нет FPU.

Quasar ★★★★★
()

Слышал одного человека, который говорил, что GCC очень плохо оптимизирует под не-Intel архитектуры. Ну а раздутость исходников можешь проверить просто посмотрев на суммарный объём файлов в соответствующем архитектуре каталоге.

KivApple ★★★★★
()
Ответ на: комментарий от kmeaw

u-boot он вторичный или даже третичный загрузчик. До его запуска надо еще делать много чего

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Под «неотгороженным загрузчиком» скорее всего понимается то, что грузит именно ядро ОС и передаёт ему параметры, а так же позволяет их поменять. Довольно мало пользователей захотят менять первичный загрузчик.

kmeaw ★★★
()

Регулярно замечаю то же самое. Просто ARM проще, вот и все объяснения.

segfault ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.