[sisyphus] Пересборка системы под свой проц.

Nick Perelyaev =?iso-8859-1?q?nick=5Fperelyaev_=CE=C1_mail=2Eru?=
Чт Янв 29 21:38:09 MSK 2004


On Wed, 28 Jan 2004 22:30:07 +0300
Немос <nemos на newmail.ru> wrote:

> Nick Perelyaev пишет:
> 
> >***
> >
> >Я решил что i586 - это слишком мало за уплоченное железо. Ранее сидел на suse там аналогично... И на red hat ... Да и везде - мы получаем апгрейженый пентиум (но не на 66 MHz (а как у меня например - на 1600 MHz))
> >Поэтому: (gcc-3.2.3)
> >O-step - включил ccache. (-> /etc/profile -> export GCC_USE_USE_CCACHE="1")
> >  
> >
> а поподробнее можно что за ccache.
пакет в сизифе. ускоряет компиляцию.
> и не могли бы расшифровать то что в скобках, пока плохо разбираюсь в 
> таких записях.
В скобах то, что нужно вписать в файл (к примеру...) /etc/profile для того, чтобы включилось это самое ускорение перекомпиляции. Переменную поставить.
На компиляции ядра заметно. Все равно что-нибудь забудешь включить... Ну и повторная компиляция покатит быстрее.
С пререкомпиляцией XFree86 это тоже помогает. Захочешь, к примеру, 4.3.99.902 собрать. А там много чего первоначально в host.conf включить можно.
И вобще любая компиляция с gcc отражается в кэше и экономится время на вторичную перекомпиляцию.
> 
> >1-st : glibc  -O3 -march=athlon-xp -mcpu=athlon-xp -funroll-all-loops
> >
> не совсем понял куда добавлять параметры -O3 -march=athlon-xp 
> -mcpu=athlon-xp -funroll-all-loops
В Makefile пакета. В переменную CFLAGS, как правило..
> и что за опция -funroll-all-loops
Разогнуть циклы. Быстрее иногда так.
Вообще быстрее\медленнее это относится к существу задачи. Ключей оптимизации много - их сочитание приводит к оптимальноcти. Ставят -O2 или еще быстрее -O3 или меньше по размеру -Os. Это чтобы не писать сами ключи в отдельности.
Потом, при сборке, gcc содержимое CFLAGS приложит к себе и получится:
gcc -O3 -march=My_Cool_Proc -mcpu=Family_My_Cool_Proc -f (здесь могут быть и другие флаги оптимизации) Hello_World.c
> 
> >(кстати rpm glibc от альта при сборке сильно материться на синтаксис - лажа там в spec какая-то  и после установки хочет восстановить брокен депенденси - решил - ну и х. с ним и собрал из сырца. Это у нас основа (инсталл делал при telinit s)
> >(на второй машине соответственно pentium4 и + -msse2 )
> >  
> >
> у меня тоже. Правда там еще вылетела ошибка при проверки того что 
> скомпелировал, когда проверяет операции с long double не много не 
при сборке glibc-core? Похоже в spec-файле пакета с синтаксисом неладно.
> сходится результат, причем пробовал собирать и под k6, и под i586 c 
Может баг fpu? k6, например, имел несколько stepping'ов (это по-блатному, а так это разные версии камней с пофиксенными багами (один - точно знаю - реализация mtrr - k6 )) Что в /proc/cpuinfo?
> -mcpu=i686 и -mcpu=i586, результат один, правда собирать пробовал под 
(такое сочитание опций абсурдно, но gcc 3.x (да и 2.9x?) покрывает указанное в mcpu указанным в march, так что получилось -mcpu=i686 )
> master.
да это не так важно. тут у нас с gcc дела.
> 
> >2-nd : XFree86 -O3 -march=athlon-xp -mcpu=athlon-xp -funroll-all-loops -frerun-loop-opt -fno-strength-reduce (X'ы = 4.3.99.902 или aka 4.4.0 кс2), правда не собирается xfs (из за отсутствия lint ?). Я на него забил - у меня пока нет x-терминалов. (но будут - я это дожму)
> >3-d : ну и конечно mplayer ( этот все сам делает верно). Что интересно, он ставил  -O4 (чтоб прихватить еще два лишних дефайна).
> >4-st : и в ядро (2.4.23) в мейк-файл добавил -O4 -march=athlon-xp -mcpu=athlon-xp -funroll-all-loops -rerun-loop-opt (CFLAGS).
> >
> >И теперь тогда можно начать смотреть на OpenCluster (а то чего старый k6-2 валяться будет).
> >  
> >
> что за OpenCluster
У меня два компа. Но по техническим причинам две руки. Я хочу, чтобы работало два процессора и две памяти (чтобы второй не просто давил пол). Это делают на кластерах и еще много как. Собирают толпу компов и завязывают вместе. Яндекс вот так сделал.. SETI. OpenCluster - это одна из реализаций. 
> 
> И еще:
>  - где можно почитать по всем опциям компеляции, по возможности на русском.
www.opennet.ru 
-
Исчерпывающе и корректно  - на gcc.gnu.org. Все переводы, imho, отстают по времени. Из-за разных сведений чаще всего флейм и полыхает. Есть еще материалы и по конкретному применению. Они, вот, и более интересны.

>  - и по настройки rpm  в отношении сборки пакетов из  исходников.
Это есть в доке Альта. Опции сборки src.rpm находятся в /usr/lib/rpm
файл rpmrc. Подкаталоги - это архитектуры. При сборке на k6-3 сработает k6-alt-linux -> macros как дополнение к /use/lib/rpm/rpmrc

--
Вообще в инете я встречал выкладки по 60-ти процентному (а для спец-теста 1000%-ному ) реальному ускорению операций софта (неизвестного мне - что-то для ядерной химии) в результате оптимизации кода под архитектору для gcc (там, правда PPC был, не IA32 ) и разумных проставлений опций.

-- 

С уважением, Николай Переляев e-mail: nick_perelyaev на mail.ru



Подробная информация о списке рассылки Sisyphus