View previous topic :: View next topic |
Author |
Message |
Alen n00b
Joined: 22 Nov 2004 Posts: 17
|
Posted: Tue Sep 20, 2005 6:30 pm Post subject: Опять про CFLAGS |
|
|
Не мог бы кто нибуть из мудрых прокомментировать вот это:
runacovea -config gcc33_pentium3.acovea -bench evobench.c
run complete time: 2005 Sep 02 14:21:54
optimistic options:
-fno-merge-constants (1.173)
-fgcse (2.526)
-fforce-mem (2.043)
-fschedule-insns2 (2.284)
-fregmove (1.318)
-finline-functions (1.076)
-mieee-fp (1.221)
-mno-push-args (1.559)
-maccumulate-outgoing-args (1.221)
-fno-math-errno (1.028)
-ffinite-math-only (1.124)
pessimistic options:
-foptimize-sibling-calls (-1.486)
-frerun-cse-after-loop (-1.244)
-fschedule-insns (-1.003)
-freduce-all-givs (-1.051)
-fnew-ra (-1.486)
-funroll-all-loops (-1.341)
-mno-align-stringops (-1.293)
-mfpmath=387 (-1.776)
-mfpmath=sse,387 (-1.631)
-fomit-frame-pointer (-1.969)
-momit-leaf-frame-pointer (-1.293)
система - iP4 2,8/512/200Gb
Какие из этиз опций включать в make.conf, если оптимистичные, то почему в пессимистичных находится -fomit-frame-pointer, который ну просто везде рекомендуют, кроме того странно выглядит то что sse снижает производительность, а опции про ММХ вообще нет нигде :-\ _________________ Я даже падая - лечу! |
|
Back to top |
|
|
rusxakep Guru
Joined: 09 Jul 2004 Posts: 458
|
Posted: Wed Sep 21, 2005 7:18 am Post subject: |
|
|
* app-benchmarks/acovea
Latest version available: 4.0.0
Latest version installed: [ Not Installed ]
Size of downloaded files: 325 kB
Homepage: http://www.coyotegulch.com/products/acovea/
Description: Analysis of Compiler Options via Evolutionary Algorithm
License: GPL-2
Ну пессимистичность и оптимистичность связанна с конкретной ТВОЕЙ системой. Нормальное распределение не гарантирует что все будут подходит под одну конфигурацию. Даже общую. Тести
P.S: Почему gcc 3.3? Почему P3? У тебя же P4! Какой у тебя gcc? |
|
Back to top |
|
|
Alen n00b
Joined: 22 Nov 2004 Posts: 17
|
Posted: Thu Sep 22, 2005 12:40 am Post subject: |
|
|
rusxakep wrote: | * Ну пессимистичность и оптимистичность связанна с конкретной ТВОЕЙ системой. Нормальное распределение не гарантирует что все будут подходит под одну конфигурацию. Даже общую. Тести |
rusxakep wrote: | P.S: Почему gcc 3.3? Почему P3? У тебя же P4! Какой у тебя gcc? |
gcc-config -c
i686-pc-linux-gnu-3.3.6
П3 - по тому что надо будет потом клонировать систему на пару машинок с таким камнем, а компилять там не охота ибо вся молодость пройдет ждать
а для П4 флаги у меня выгледят вот так:
runacovea -config gcc33_pentium4.acovea -bench evobench.c
run complete time: 2005 Sep 04 10:13:05
optimistic options:
-fno-if-conversion (1.124)
-fno-delayed-branch (1.649)
-fgcse (2.218)
-fforce-mem (1.693)
-fschedule-insns2 (1.605)
-fregmove (1.343)
-fsched-interblock (1.43)
-ffloat-store (1.343)
-maccumulate-outgoing-args (1.43)
pessimistic options:
-fexpensive-optimizations (-1.588)
-falign-labels (-1.151)
-fno-inline (-1.107)
-fnew-ra (-1.676)
-funroll-loops (-1.851)
-funroll-all-loops (-1.501)
-mfpmath=sse (-2.157)
-mfpmath=sse,387 (-2.113)
-fomit-frame-pointer (-2.07)
-ffinite-math-only (-1.282)
... ясности это не добавляет _________________ Я даже падая - лечу! |
|
Back to top |
|
|
rusxakep Guru
Joined: 09 Jul 2004 Posts: 458
|
Posted: Thu Sep 22, 2005 5:37 am Post subject: |
|
|
А сколько времени этот бенч работает - я устал ждать |
|
Back to top |
|
|
micmic n00b
Joined: 16 Nov 2004 Posts: 36
|
Posted: Thu Sep 22, 2005 5:47 am Post subject: |
|
|
сколько работает не знаю, я ставил на ночь, утром все было готово. _________________ cat /etc/gentoo-release && uname -srm
Gentoo Base System release baselayout-2.0.0_rc6
Linux 2.6.24-gentoo- i686 |
|
Back to top |
|
|
Laitr Keiows Bodhisattva
Joined: 04 Jul 2005 Posts: 891 Location: Kobe, Japan
|
Posted: Thu Sep 22, 2005 10:10 am Post subject: |
|
|
Alen wrote: |
gcc-config -c
i686-pc-linux-gnu-3.3.6
|
Так 3.4 есть уже.
Имхо тестировать надо там же где и будет использоваться система.
Кроме того многие предположительно «полезные» флаги могут отрицательно сказаться на стабильности системы.
Ну, кроме ядра: там все по-своему компилируется. |
|
Back to top |
|
|
rusxakep Guru
Joined: 09 Jul 2004 Posts: 458
|
Posted: Thu Sep 22, 2005 2:00 pm Post subject: |
|
|
3.4 есть - но еще в ~x86 |
|
Back to top |
|
|
Alen n00b
Joined: 22 Nov 2004 Posts: 17
|
Posted: Thu Sep 22, 2005 6:45 pm Post subject: |
|
|
Люди, кидайте в топик спецификации ваших систем и что бенчмарк выдал (после ночи работы )
а там глядишь по накопившейся статистике выводы какие нибуть сделаем полезные! _________________ Я даже падая - лечу! |
|
Back to top |
|
|
Alex_5252 n00b
Joined: 15 Jun 2004 Posts: 4 Location: Nizhny Novgorod
|
Posted: Sun Oct 16, 2005 5:33 am Post subject: |
|
|
test application: /usr/share/acovea/benchmarks/evobench.c
config description: GCC 3.3 Pentium 3 (ia32)
test configuration: gcc33_pentium3.acovea
acovea version: 4.0.0
evocosm version: 2.5.2
test start time: 2005 Oct 15 17:37:31
# of populations: 5
population size: 40
survival rate: 10% (4)
migration rate: 5% (2)
mutation rate: 1%
crossover rate: 100%
fitness scaling: windowed
generations to run: 20
random number seed: 2228856555
optimistic options:
-fgcse (2.339)
-fexpensive-optimizations (1.377)
-fstrength-reduce (1.42)
-fschedule-insns2 (1.858)
-fsched-interblock (1.114)
-fsched-spec (1.508)
-falign-loops (1.158)
-finline-functions (1.333)
-freduce-all-givs (1.202)
-mno-align-stringops (1.027)
-funsafe-math-optimizations (1.464)
-fno-signaling-nans (1.114)
pessimistic options:
-fno-if-conversion (-1.248)
-fno-crossjumping (-1.598)
-foptimize-sibling-calls (-1.292)
-fforce-mem (-1.117)
-fschedule-insns (-1.992)
-fregmove (-1.117)
-fprefetch-loop-arrays (-1.161)
-funroll-all-loops (-1.336)
-mfpmath=sse (-2.036)
-mfpmath=sse,387 (-1.336)
-fomit-frame-pointer (-1.817)
-ffinite-math-only (-1.3
Сейчас стоят опции в make.conf
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
MAKEOPTS="-j2"
Так что получается стоит нехорошая опция...
Теперь, интересно, какие опции - безопасные...
Система Celeron 800, ОЗУ - 128. |
|
Back to top |
|
|
spijon Tux's lil' helper
Joined: 22 Dec 2003 Posts: 148 Location: Ukraine, Kiev
|
Posted: Wed Oct 19, 2005 7:36 am Post subject: |
|
|
А чё означают эти циферки справа от названия флага?
-fgcse (2.339)
Например 2.339 - это на сколько процентов оно может оптимизировать код? _________________ òÁÓÓÙÌËÁ ÌÕÞÛÉÈ ÁÎÅËÄÏÔÏ× http://subscribe.ru/archive/rest.funny.time4gonivo/ |
|
Back to top |
|
|
Behivor n00b
Joined: 20 Oct 2005 Posts: 23 Location: Ukranian, Mariupol
|
Posted: Thu Oct 20, 2005 5:03 pm Post subject: |
|
|
вопрос:
чтобы использовать новые флаги - это надо пересобирать весь world? |
|
Back to top |
|
|
pv Tux's lil' helper
Joined: 25 Mar 2005 Posts: 103 Location: Russia, Yaroslavl
|
Posted: Thu Oct 27, 2005 8:10 pm Post subject: |
|
|
Behivor wrote: | вопрос:
чтобы использовать новые флаги - это надо пересобирать весь world? |
Теоретически - да.
Практически некоторые (а может, многие) ebuildы фильтруют флаги. Некоторые из них убирают опасные по их мнению флаги, другие вообще убирают все кроме -march=..., а любую оптимизацию заменяют на -O2.
gcc, binutils, glibc, openoffice стопудово так поступают.
Идея в том, что glibc, например, в первозданном виде (с gnu.org) не собирается с сильной оптимизацией, или собирается некорректно (глючит). Документация для gcc, binutils, glibc говорит: собирайте с опциями по умолчанию. Хотя я сам собирал binutils с довольно сильной оптимизацией (-march=... -O3 -fpmath=sse ...), и - ничего, нормально. Однако ручная сборка glibc не прокатила. ДАЖЕ С -O1!
Так что, правильный ответ на твой вопрос: НЕТ. Например, openoffice собирается с -O2 -march=... при любых CFLAGS. То есть пересборка его - зря потерянные 5-6 часов (AthlonXP 2500+, 512MB) твоей жизни.
Другое дело, как узнать, фильтруются ли флаги. Я лично устанавливаю что-нибудь нетривиальное и начинаю сборку. По ходу смотрю на вывод компилятора. Если флаги мои - всё нормально, если же нет, пересобирать бессмысленно.
Использованные при сборке уже установленного пакета флаги сохраняются в /var/db/pkg/<группа>/<пакет>/CFLAGS.
Не знаю, но ещё, может, существует аналог 'emerge --newuse'. |
|
Back to top |
|
|
|