Флаги оптимизации (Какие вы применяете флаги оптимизации при сборке Gentoo?)

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Аватара пользователя
unax
Сообщения: 275
ОС: Linux

Re: Флаги оптимизации

Сообщение unax »

блин офтоп уже.. Простите. Кратенько: дело в одном из слотов под озу.
Спасибо сказали:
Аватара пользователя
vonabarak
Сообщения: 146

Re: Флаги оптимизации

Сообщение vonabarak »

У мну тоже атом. флаги такие использую
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: Флаги оптимизации

Сообщение dimugric »

Покажу свои флаги для своего процессора 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:


Буду рад, если кто подскажет, что нужно что-нибудь добавить/убрать :rolleyes:
Asus K56CB Intel Core i5 - 3317U, 1.7ГГц/DDR - 6Gb/ SSD - 160Gb/ nvidia GeForce 740M "fedora"
Спасибо сказали:
Аватара пользователя
taaroa
Сообщения: 1319

Re: Флаги оптимизации

Сообщение taaroa »

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: Флаги оптимизации

Сообщение megabaks »

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:


Буду рад, если кто подскажет, что нужно что-нибудь добавить/убрать :rolleyes:

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

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: Флаги оптимизации

Сообщение .Serj. »

Кстати, о птичках. Насколько безопасны графитовые флаги? А то в своё время наигрался со всякими m64 и fast-math до потери пульса у ОС, так что теперь только

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

CFLAGS="-march=k8 -O2 -pipe -mfpmath=sse -mmmx -msse2 -m3dnow -fomit-frame-pointer"

для Turion64 X2 :)
Спасибо сказали:
Аватара пользователя
dimugric
Сообщения: 385
Статус: kernel panic
ОС: debian "wheezy", fedora

Re: Флаги оптимизации

Сообщение dimugric »

2 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"


С этими параметрами оптимизации покрайней мере сборка пошла

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

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: Флаги оптимизации

Сообщение megabaks »

ошибки потому что gcc собран без USE флага graphite

.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: Флаги оптимизации

Сообщение Terkin »

Займусь-ка я некропостингом... )))

Не понимаю такой вещи, зачем указывать -fomit-frame-pointer, если -О2 по-идее уже включает его?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Флаги оптимизации

Сообщение serzh-z »

Terkin писал(а):
05.08.2010 13:26
Не понимаю такой вещи, зачем указывать -fomit-frame-pointer, если -О2 по-идее уже включает его?
Это вопрос к "оптимизаторам", которые не понимают смысла опций, которые они используют и лишь слышали, что "вот эта опция - это круто". Это - первая, и наиболее частая, причина.

Вторая же причина заключается в том, что "-O2" включает "-fomit-frame-pointer" лишь на тех архитектурах, где её включение не повлияет на механизм отладки приложения - в частности на архитектурах с достаточным количеством регистров общего назначения. На x86 - "-fomit-frame-pointer" в некоторых случаях затруднит отладку кода и не позволит отладчику правильно отслеживать текущий кадр стека. На x86_64 - регистров вдвое больше и там такой проблемы не возникнет, соответственно там "-O2" включит (по-крайней мере подобная автоматическая логика была в GCC пару лет назад) и "-fomit-frame-pointer".
Спасибо сказали:
Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: Флаги оптимизации

Сообщение megabaks »

Terkin писал(а):
05.08.2010 13:26
Займусь-ка я некропостингом... )))

Не понимаю такой вещи, зачем указывать -fomit-frame-pointer, если -О2 по-идее уже включает его?

ты бы маны покурил чтоль перед постом
во-первых - набор опций в каждом из уровней различны в каждой(ну или почти) версии gcc
во-вторых - как уже написали выше - зависит от архитектуры

dimugric писал(а):
30.05.2010 11:48
2 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

Re: Флаги оптимизации

Сообщение Terkin »

megabaks писал(а):
05.08.2010 14:55
во-вторых - как уже написали выше - зависит от архитектуры


угу, уяснил этот момент, всем спасибо!
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Флаги оптимизации

Сообщение BratSinot »

Здравствуйте!

Использую я не 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: Флаги оптимизации

Сообщение megabaks »

По выхлопу "gcc --target-help" видно, что при подключении -msse4.2, он подключает mmx и другие sse. Это правда?
правда, но реальной генерации сих инструкций не происходит
для этого надо или -ftree-vectorize или -mfpmath={387|sse} пруф
Есть ли смысл слезать с GCC 4.4, на GCC 4.5
есть - много фиксов - в том числе сильно переработанный графит
использовать -march=corei7, вместо -march=core2
чо о_О? откуда оно там? сам сижу на 4.5.1 из свн - нет там такого(или у меня сломался поиск по ману?)
я использую: "-march=core2 -mtune=generic -O2 -pipe", ну и от себя добавляю -msse4.2 и -fPIC
первое доьавленное, как и сказано выше впринципе бесполезно, второе...а зачем? оно и так так и собирается
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Флаги оптимизации

Сообщение BratSinot »

есть - много фиксов - в том числе сильно переработанный графит

Это в теории, а мне на практике интересно.

чо о_О? откуда оно там? сам сижу на 4.5.1 из свн - нет там такого(или у меня сломался поиск по ману?)

Ну у меня в MinGW такое отображается в --target-help, но рельно его там нет. Значит пока не появилось.]
Спасибо сказали:
Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: Флаги оптимизации

Сообщение megabaks »

Это в теории, а мне на практике интересно.
пруф искать лень - но я с точки зрения практики и говорю - тот же графит в 4.4 в 99% давал регрессии - в 4.5 же разгон

Значит пока не появилось.]
и вряд ли появится - особых отличий от корок там и нет
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Флаги оптимизации

Сообщение BratSinot »

и вряд ли появится - особых отличий от корок там и нет

Ладно щас попробую 4.6 собрать, там и посмотрю.
Спасибо сказали:
Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: Флаги оптимизации

Сообщение megabaks »

короче вот циферки для 4.4 vs 4.5
как видно даже без графита на 4.5 шустрее
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Флаги оптимизации

Сообщение BratSinot »

Я разницы между gcc-4.4 и gcc-4.6 не вижу. Поэтому не вижу смысла переходить, и останусь на 4.4
Спасибо сказали:
Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: Флаги оптимизации

Сообщение megabaks »

ну и зря - оно медленнее...
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Флаги оптимизации

Сообщение BratSinot »

megabaks писал(а):
22.08.2010 16:04
ну и зря - оно медленнее...

По time gzip2 примерно одинакого.
Спасибо сказали:
Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: Флаги оптимизации

Сообщение megabaks »

не правильно собираешь )
у меня же в пруфе до 107%
а это что-то значит - если учесть кол-во пакетов...
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Флаги оптимизации

Сообщение BratSinot »

megabaks писал(а):
23.08.2010 19:07
не правильно собираешь )
у меня же в пруфе до 107%
а это что-то значит - если учесть кол-во пакетов...

Я со стандартными флагами собираю, плюс у нас разные ОС используются(у тебя x86, у меня amd64). Вообщем закрыли тему.
Спасибо сказали:
Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: Флаги оптимизации

Сообщение megabaks »

amd64
на ней профитов ещё больше за счёт того же кол-ва регистров...
ну не хочешь как хочешь :)
Спасибо сказали: