Пересборка glibc в slackware 10

Здесь обсуждаются все вопросы, не попадающие под другие категории
Anonymous

Пересборка glibc в slackware 10

Сообщение Anonymous »

Как я понимаю, в slackware 10 он собран с -O2 -march=i486 -mcpu=i686?
А даст ли что-то пересборка с -march=pentium4 ? У кого есть опыт? И самое главное - как количественно замерять эффект, чтоб не было "нутром чую, что быстрее, но оценить не могу". Запускать time с чем-то? А с чем?

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

yozhhh, не даст. Максимиу пересборка ядра и libc может чувствоваться.... Хотя в нормальных дистрибутивах есть и то и другое в оптимизированном под i686 как минимум виде.
Опыт растет прямо пропорционально выведенному из строя оборудованию

Аватара пользователя
#!/bin/bash
Неотъемлемая часть форума
Сообщения: 331
Зарегистрирован: 11 дек 2002, 00:35
Откуда: /bsu/rfe
Контактная информация:

Сообщение #!/bin/bash »

Llama, так это же и есть libc:)
yozhhh, компилируй. Лишним не будет. Я в своем Gentoo скомпилировал glibc с ЖУТКОЙ оптимизацией (ebuild не дает - пришлось править). Все работает стабильно, ни одной проблемы. Хотя не факт, что везде будет то же самое.

Про замеры. Для замерки на скорую руку я беру базу VELCOM и делаю по ней поиск:

Код: Выделить всё

time cat basenew.txt | grep 6xxxxxx | iconv -f WINDOWS-1251 -t KOI8-R (или UTF-8 ) 
Первый раз - со считыванием с веника. Последующие - из памяти.

Разница между дистрибутивами:
SuSE 9.1 (i586) - 0,50 сек;
Gentoo (athlon-tbird) - 0,30 сек
Gentoo (athlon-tbird + жестокая оптимизация) - 0,29 сек

Вывод: жестоко оптимизировать не имеет смысла, а вот скомпилировать под процессор - необходимо!8)
Последний раз редактировалось #!/bin/bash 05 дек 2004, 12:06, всего редактировалось 1 раз.
ИМХО = Имею Мнение, Хрен Оспоришь :)

Телефон - 8-029-7796373. Ночью выключен.

michael
Неотъемлемая часть форума
Сообщения: 434
Зарегистрирован: 12 апр 2004, 11:00
Откуда: г. Владивосток
Контактная информация:

Сообщение michael »

To #!/bin/bash, а с какими опциями ты жестокую оптимизацию делал?

Аватара пользователя
#!/bin/bash
Неотъемлемая часть форума
Сообщения: 331
Зарегистрирован: 11 дек 2002, 00:35
Откуда: /bsu/rfe
Контактная информация:

Сообщение #!/bin/bash »

Michael,

Код: Выделить всё

-march=athlon-tbird -O3 -pipe -fforce-addr -fomit-frame-pointer -funroll-loops -falign-functions=4 -maccumulate-outgoing-args
Конечно, бывает и жестче, но glibc и этого хватит:)
ИМХО = Имею Мнение, Хрен Оспоришь :)

Телефон - 8-029-7796373. Ночью выключен.

Anonymous

Сообщение Anonymous »

Сообщаю первые результаты :)
Пробовать решил на Athlon 900. Флаги взял такие:
-O3 -march=athlon -mmmx -m3dnow -pipe -fomit-frame-pointer
Базу VELCOM выкачивать было лениво, поэтому взял в текстовом виде свой mail inbox и сдублировал его в себя же, пока не получил файл размером 64 Мб.
Использовал команду
time cat email | grep "r" | iconv -f cp1251 -t UTF-8 2>/dev/null >/dev/null
С дефолтовым для slackware-current glibc (он собирается с -O3, кстати, но с совместимостью для i486) средний результат был: real 0m1.470s.
После пересборки стало в среднем 1.383s, т.е. 94% от старого значения.
НО! Segmentation Fault в ответ на команду "sleep 5" (она присутствует в /etc/rc.d/rc.6) поверг меня в глубочайшее уныние, поэтому я быстренько вернул назад старый glibc и пока что обмозговываю ситуацию :)

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

давайте мухи и котлеты отдельно:
-march, -mcpu, -,mmx, -m3dnow - это использование фирмовых фич процессоров.
-O3 - это несколько другое - в отличии от вышеприведеных флагов работоспособность полученного кода никто не гарантирует. XFree и ядро собираются с -O2 и не выше - причем не зря... Причин ставить собирать libc6 с -O3 я не вижу - глюки будут ИМХО вылазить в разных местах и установить причинно-следственную связь будет весьма непросто.
Последний раз редактировалось Llama 05 дек 2004, 17:10, всего редактировалось 1 раз.
Опыт растет прямо пропорционально выведенному из строя оборудованию

michael
Неотъемлемая часть форума
Сообщения: 434
Зарегистрирован: 12 апр 2004, 11:00
Откуда: г. Владивосток
Контактная информация:

Сообщение michael »

#!/bin/bash, а что еще ты с -O3 собираешь и как результат (быстрее -O2 или так же, глючит или не глючит)?

Anonymous

Сообщение Anonymous »

Может, вместе с glibc надо пересобирать и coreutils? Сейчас попробую, конечно, собрать с O2...

Anonymous

Сообщение Anonymous »

Пересобрал с -O2 -march=athlon -m3dnow
Время теперь в среднем 1.418s, зато sleep больше не падает. Интересно всё это, конечно, но особого смысла IMHO не имеет. Вот мозиллу пересобрал - и на глаз заметно, и памяти жрать стала меньше. До этого юзал бинарник с mozilla.org.

Аватара пользователя
#!/bin/bash
Неотъемлемая часть форума
Сообщения: 331
Зарегистрирован: 11 дек 2002, 00:35
Откуда: /bsu/rfe
Контактная информация:

Сообщение #!/bin/bash »

Michael, насколько быстрее - не знаю, потому что изначально все собирал с -O3. Естественно, то, что дали eduild'ы. Но по сравнению с SuSE НАМНОГО быстрее - но ведь Суся чуть ли не самым тормозным дистрибом считается.
Точно помню, что glibc, KDE, xine, xmms я собирал с -O3
Все работает шустро, нормально и стабильно. Никаких проблем.

Кстати, перед сборкой glibc на нее накладывается 25 патчей. Возможно, среди них есть и те, что заменяют чувствительный к оптимизации код на более стабильный. Хотя я могу ошибаться, и, вероятнее всего, я это и делаю :) Но другого объяснения стабильной работы я не знаю.
ИМХО = Имею Мнение, Хрен Оспоришь :)

Телефон - 8-029-7796373. Ночью выключен.

Anonymous

Сообщение Anonymous »

Дело оказалось не в O3, а в ком-то из "-pipe -fomit-frame-pointer". Собрал на другой машине с O2 и "-pipe -fomit-frame-pointer" - те же траблы со sleep.

bazil
Неотъемлемая часть форума
Сообщения: 879
Зарегистрирован: 18 дек 2003, 23:56

Сообщение bazil »

это и есть флаги жестокой оптимизации, а не оптимизации под проц или архитектуру
I did a 'zcat /vmlinuz > /dev/audio' and I think I heard God...

booxter
Неотъемлемая часть форума
Сообщения: 1427
Зарегистрирован: 04 апр 2004, 21:04

Сообщение booxter »

Некаторыя людзі, у якіх ёсьць час 100 разоў перазьбіраць глібсы, гавораць што -O3 нават медленей за -O2

Anonymous

Сообщение Anonymous »

Да, я поэтому и избегаю использовать O3. С O2 как-то спокойнее.
Итак, окончательный результат на машине, ради которой это всё и затевалось: ноутбук с P4-1700.
Собирал с "-O2 -march=pentium4 -mfpmath=sse -msse2".
Со старыми glibc (а это slackware 10, оптимизация O2, -march=i486 -mcpu=i686) вышеприведённая команда работала в среднем 0,945 с. После пересборки - 0,870 с (92% начального значения). Пересборка заняла около часа. Так что пусть каждый решает, стОит оно того или нет :)

Ответить