Флаги оптимизации (Какие вы применяете флаги оптимизации при сборке Gentoo?)
Модератор: /dev/random
-
unax
- Сообщения: 275
- ОС: Linux
Re: Флаги оптимизации
блин офтоп уже.. Простите. Кратенько: дело в одном из слотов под озу.
-
vonabarak
- Сообщения: 146
Re: Флаги оптимизации
У мну тоже атом. флаги такие использую
CFLAGS="-march=core2 -mtune=generic -O2 -mmmx -msse -msse2 -mssse3 -mfpmath=sse -fomit-frame-pointer"
-mtune=pentium по-моему неправильно использовать, хотя могу ошибаться.
CFLAGS="-march=core2 -mtune=generic -O2 -mmmx -msse -msse2 -mssse3 -mfpmath=sse -fomit-frame-pointer"
-mtune=pentium по-моему неправильно использовать, хотя могу ошибаться.
Йа тьомный эльф
-
dimugric
- Сообщения: 385
- Статус: kernel panic
- ОС: debian "wheezy", fedora
Re: Флаги оптимизации
Покажу свои флаги для своего процессора Core2duo:
\
Вот процессорная инфа:
Буду рад, если кто подскажет, что нужно что-нибудь добавить/убрать
Код: Выделить всё
CFLAGS="-O2 -march=core2 -mtune=core2 -mmmx -msse4.1 -pipe -g0"Вот процессорная инфа:
Код: Выделить всё
# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 Duo CPU T5270 @ 1.40GHz
stepping : 13
cpu MHz : 1400.000
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida
bogomips : 2793.11
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 Duo CPU T5270 @ 1.40GHz
stepping : 13
cpu MHz : 1400.000
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida
bogomips : 2792.87
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:Буду рад, если кто подскажет, что нужно что-нибудь добавить/убрать
Asus K56CB Intel Core i5 - 3317U, 1.7ГГц/DDR - 6Gb/ SSD - 160Gb/ nvidia GeForce 740M "fedora"
-
taaroa
- Сообщения: 1319
Re: Флаги оптимизации
Shell
$ cat gcc_out.sh
#!/bin/sh
CFLAGS=`grep 'CFLAGS=' /etc/make.conf|awk -F\" '{print $2}'`
gcc $CFLAGS -E -v - </dev/null 2>&1 | sed -n 's/.* -v - //p'
Код: Выделить всё
$ ./gcc_out.sh
-D_FORTIFY_SOURCE=2 -march=k8-sse3 -mcx16 -msahf --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=k8 -fno-strict-overflow -mmmx -msse -msse2 -msse3 -mssse3 -m3dnow -mfpmath=sse -Wno-all -fPIE -O2 -fstack-protector-all:wq
-
megabaks
- Сообщения: 697
- ОС: Gentoo ~x86
Re: Флаги оптимизации
dimugric писал(а): ↑29.05.2010 23:06Покажу свои флаги для своего процессора Core2duo:
\Код: Выделить всё
CFLAGS="-O2 -march=core2 -mtune=core2 -mmmx -msse4.1 -pipe -g0"
Вот процессорная инфа:
Код: Выделить всё
# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 Duo CPU T5270 @ 1.40GHz stepping : 13 cpu MHz : 1400.000 cache size : 2048 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida bogomips : 2793.11 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 Duo CPU T5270 @ 1.40GHz stepping : 13 cpu MHz : 1400.000 cache size : 2048 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida bogomips : 2792.87 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:
Буду рад, если кто подскажет, что нужно что-нибудь добавить/убрать
Код: Выделить всё
CFLAGS="-O2 -march=core2 -ftree-vectorize -mssse3 --param l2-cache-size=2048 -fgraphite-identity -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -ftree-loop-linear -pipe -g0 -Wno-all"
CXXFLAGS="${CFLAGS}"или без графита
Код: Выделить всё
CFLAGS="-O2 -march=core2 -ftree-vectorize -mssse3 --param l2-cache-size=2048 -pipe -g0 -Wno-all"
CXXFLAGS="${CFLAGS}"Код: Выделить всё
CFLAGS="-O2 -march=core2 -mtune=core2 -mmmx -msse4.1 -pipe -g0"-mtune при таком же -march не нужен
-mmmx core2 включает
-msse4.1 не выжу в выхлопе
-
.Serj.
- Сообщения: 127
- ОС: Gentoo, Win7
Re: Флаги оптимизации
Кстати, о птичках. Насколько безопасны графитовые флаги? А то в своё время наигрался со всякими m64 и fast-math до потери пульса у ОС, так что теперь только
для Turion64 X2 :)
Код: Выделить всё
CFLAGS="-march=k8 -O2 -pipe -mfpmath=sse -mmmx -msse2 -m3dnow -fomit-frame-pointer"для Turion64 X2 :)
-
dimugric
- Сообщения: 385
- Статус: kernel panic
- ОС: debian "wheezy", fedora
Re: Флаги оптимизации
2 megabaks
С графитами при таком CFLAGS:
Появляется ошибка при сборке:
С этими параметрами оптимизации покрайней мере сборка пошла
"
С графитами при таком CFLAGS:
Код: Выделить всё
CFLAGS="-O2 -march=core2 -ftree-vectorize -mssse3 --param l2-cache-size=2048 -fgraphite-identity -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -ftree-loop-linear -pipe -g0 -Wno-all"
CXXFLAGS="${CFLAGS}"Появляется ошибка при сборке:
Код: Выделить всё
cc1: ошибка: некорректный ключ "-fgraphite-identity"
cc1: ошибка: некорректный ключ "-floop-interchange"
cc1: ошибка: некорректный ключ "-floop-block"
cc1: ошибка: некорректный ключ "-floop-strip-mine"
cc1: ошибка: некорректный ключ "-ftree-loop-distribution"
cc1: ошибка: некорректный ключ "-fgraphite-identity"
cc1: ошибка: некорректный ключ "-floop-interchange"
cc1: ошибка: некорректный ключ "-floop-block"
cc1: ошибка: некорректный ключ "-floop-strip-mine"
cc1: ошибка: некорректный ключ "-ftree-loop-distribution"
cc1: ошибка: некорректный ключ "-fgraphite-identity"
cc1: ошибка: некорректный ключ "-floop-interchange"
cc1: ошибка: некорректный ключ "-floop-block"
cc1: ошибка: некорректный ключ "-floop-strip-mine"
cc1: ошибка: некорректный ключ "-ftree-loop-distribution"С этими параметрами оптимизации покрайней мере сборка пошла
Код: Выделить всё
CFLAGS="-O2 -march=core2 -ftree-vectorize -mssse3 --param l2-cache-size=2048 -pipe -g0 -Wno-all"
CXXFLAGS="${CFLAGS}Asus K56CB Intel Core i5 - 3317U, 1.7ГГц/DDR - 6Gb/ SSD - 160Gb/ nvidia GeForce 740M "fedora"
-
megabaks
- Сообщения: 697
- ОС: Gentoo ~x86
Re: Флаги оптимизации
ошибки потому что gcc собран без USE флага graphite
скажем так - не весь софт его любит
и лучше с графитом собирать веткой 4.5
.Serj. писал(а): ↑30.05.2010 09:21Кстати, о птичках. Насколько безопасны графитовые флаги? А то в своё время наигрался со всякими m64 и fast-math до потери пульса у ОС, так что теперь только
Код: Выделить всё
CFLAGS="-march=k8 -O2 -pipe -mfpmath=sse -mmmx -msse2 -m3dnow -fomit-frame-pointer"
для Turion64 X2
скажем так - не весь софт его любит
и лучше с графитом собирать веткой 4.5
-
Terkin
- Сообщения: 216
- ОС: Gentoo
Re: Флаги оптимизации
Займусь-ка я некропостингом... )))
Не понимаю такой вещи, зачем указывать -fomit-frame-pointer, если -О2 по-идее уже включает его?
Не понимаю такой вещи, зачем указывать -fomit-frame-pointer, если -О2 по-идее уже включает его?
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Флаги оптимизации
Это вопрос к "оптимизаторам", которые не понимают смысла опций, которые они используют и лишь слышали, что "вот эта опция - это круто". Это - первая, и наиболее частая, причина.
Вторая же причина заключается в том, что "-O2" включает "-fomit-frame-pointer" лишь на тех архитектурах, где её включение не повлияет на механизм отладки приложения - в частности на архитектурах с достаточным количеством регистров общего назначения. На x86 - "-fomit-frame-pointer" в некоторых случаях затруднит отладку кода и не позволит отладчику правильно отслеживать текущий кадр стека. На x86_64 - регистров вдвое больше и там такой проблемы не возникнет, соответственно там "-O2" включит (по-крайней мере подобная автоматическая логика была в GCC пару лет назад) и "-fomit-frame-pointer".
-
megabaks
- Сообщения: 697
- ОС: Gentoo ~x86
Re: Флаги оптимизации
ты бы маны покурил чтоль перед постом
во-первых - набор опций в каждом из уровней различны в каждой(ну или почти) версии gcc
во-вторых - как уже написали выше - зависит от архитектуры
dimugric писал(а): ↑30.05.2010 11:482 megabaks
С графитами при таком CFLAGS:
Код: Выделить всё
CFLAGS="-O2 -march=core2 -ftree-vectorize -mssse3 --param l2-cache-size=2048 -fgraphite-identity -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -ftree-loop-linear -pipe -g0 -Wno-all" CXXFLAGS="${CFLAGS}"
Появляется ошибка при сборке:
Код: Выделить всё
cc1: ошибка: некорректный ключ "-fgraphite-identity" cc1: ошибка: некорректный ключ "-floop-interchange" cc1: ошибка: некорректный ключ "-floop-block" cc1: ошибка: некорректный ключ "-floop-strip-mine" cc1: ошибка: некорректный ключ "-ftree-loop-distribution" cc1: ошибка: некорректный ключ "-fgraphite-identity" cc1: ошибка: некорректный ключ "-floop-interchange" cc1: ошибка: некорректный ключ "-floop-block" cc1: ошибка: некорректный ключ "-floop-strip-mine" cc1: ошибка: некорректный ключ "-ftree-loop-distribution" cc1: ошибка: некорректный ключ "-fgraphite-identity" cc1: ошибка: некорректный ключ "-floop-interchange" cc1: ошибка: некорректный ключ "-floop-block" cc1: ошибка: некорректный ключ "-floop-strip-mine" cc1: ошибка: некорректный ключ "-ftree-loop-distribution"
а сам gcc собран с USE graphite ?
по-моему нет
-
Terkin
- Сообщения: 216
- ОС: Gentoo
-
BratSinot
- Сообщения: 812
- ОС: Slackware64
Re: Флаги оптимизации
Здравствуйте!
Использую я не Gentoo, а Slackware, но сюда как-раз в тему обратиться. Есть ли смысл слезать с GCC 4.4, на GCC 4.5 и использовать -march=corei7, вместо -march=core2.
И какие флаги вообще использовать? По какому-то Вики по Gentoo я использую: "-march=core2 -mtune=generic -O2 -pipe", ну и от себя добавляю -msse4.2 и -fPIC.
По выхлопу "gcc --target-help" видно, что при подключении -msse4.2, он подключает mmx и другие sse. Это правда?
P.S. У меня Intel Nehalem.
Использую я не Gentoo, а Slackware, но сюда как-раз в тему обратиться. Есть ли смысл слезать с GCC 4.4, на GCC 4.5 и использовать -march=corei7, вместо -march=core2.
И какие флаги вообще использовать? По какому-то Вики по Gentoo я использую: "-march=core2 -mtune=generic -O2 -pipe", ну и от себя добавляю -msse4.2 и -fPIC.
По выхлопу "gcc --target-help" видно, что при подключении -msse4.2, он подключает mmx и другие sse. Это правда?
P.S. У меня Intel Nehalem.
-
megabaks
- Сообщения: 697
- ОС: Gentoo ~x86
Re: Флаги оптимизации
правда, но реальной генерации сих инструкций не происходитПо выхлопу "gcc --target-help" видно, что при подключении -msse4.2, он подключает mmx и другие sse. Это правда?
для этого надо или -ftree-vectorize или -mfpmath={387|sse} пруф
есть - много фиксов - в том числе сильно переработанный графитЕсть ли смысл слезать с GCC 4.4, на GCC 4.5
чо о_О? откуда оно там? сам сижу на 4.5.1 из свн - нет там такого(или у меня сломался поиск по ману?)использовать -march=corei7, вместо -march=core2
первое доьавленное, как и сказано выше впринципе бесполезно, второе...а зачем? оно и так так и собираетсяя использую: "-march=core2 -mtune=generic -O2 -pipe", ну и от себя добавляю -msse4.2 и -fPIC
-
BratSinot
- Сообщения: 812
- ОС: Slackware64
Re: Флаги оптимизации
есть - много фиксов - в том числе сильно переработанный графит
Это в теории, а мне на практике интересно.
чо о_О? откуда оно там? сам сижу на 4.5.1 из свн - нет там такого(или у меня сломался поиск по ману?)
Ну у меня в MinGW такое отображается в --target-help, но рельно его там нет. Значит пока не появилось.]
-
megabaks
- Сообщения: 697
- ОС: Gentoo ~x86
Re: Флаги оптимизации
пруф искать лень - но я с точки зрения практики и говорю - тот же графит в 4.4 в 99% давал регрессии - в 4.5 же разгонЭто в теории, а мне на практике интересно.
и вряд ли появится - особых отличий от корок там и нетЗначит пока не появилось.]
-
BratSinot
- Сообщения: 812
- ОС: Slackware64
Re: Флаги оптимизации
и вряд ли появится - особых отличий от корок там и нет
Ладно щас попробую 4.6 собрать, там и посмотрю.
-
megabaks
- Сообщения: 697
- ОС: Gentoo ~x86
Re: Флаги оптимизации
короче вот циферки для 4.4 vs 4.5
как видно даже без графита на 4.5 шустрее
как видно даже без графита на 4.5 шустрее
-
BratSinot
- Сообщения: 812
- ОС: Slackware64
Re: Флаги оптимизации
Я разницы между gcc-4.4 и gcc-4.6 не вижу. Поэтому не вижу смысла переходить, и останусь на 4.4
-
megabaks
- Сообщения: 697
- ОС: Gentoo ~x86
-
BratSinot
- Сообщения: 812
- ОС: Slackware64
-
megabaks
- Сообщения: 697
- ОС: Gentoo ~x86
Re: Флаги оптимизации
не правильно собираешь )
у меня же в пруфе до 107%
а это что-то значит - если учесть кол-во пакетов...
у меня же в пруфе до 107%
а это что-то значит - если учесть кол-во пакетов...
-
BratSinot
- Сообщения: 812
- ОС: Slackware64
-
megabaks
- Сообщения: 697
- ОС: Gentoo ~x86
Re: Флаги оптимизации
на ней профитов ещё больше за счёт того же кол-ва регистров...amd64
ну не хочешь как хочешь :)