LINUX.ORG.RU
ФорумTalks

[Опрос] Флаги оптимизации

 


0

0

Давайте померяемся у кого CFLAGS круче :) У меня на ноуте "-O2 -march=pentium-m -mfpmath=sse -pipe", на десктопе - "-O2 -march=pentium4 -mfpmath=sse -msse2 -mmmx"

Никогда не интересовался мифической оптимизацией, поэтому и флаги такие простые.

★★★★★

-O3 -march=i686 -pipe -j5 ибо гипертрейдинг, вроде как работает. И нефих более.

one117 ★★★★★
()

А меня такая оптимизация вообще не интересует
Хоть на gentoo я уже лет пять

Fedor ★★★
()

наткнулся тут на чужой make.conf

CFLAGS="-march=pentium-m -pipe -O3 -mtune=pentium-m -momit-leaf-frame-pointer -ftracer -ffast-math -fomit-frame-pointer -fforce-addr -frename-registers -falign-functions=64"
CXXFLAGS="${CFLAGS} -frepo"
LDFLAGS="-W1,-o1"

жесть

JB ★★★★★
() автор топика
Ответ на: комментарий от magesor

CFLAGS="-O3 -march=pentium4 -pipe -msse -msse2 -mmmx -pipe -fomit-frame-pointer -fforce-addr -fno-ident -ftracer -fweb"

CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"

LDFLAGS="-Wl,-O1 -Wl,--sort-common"

fhtagn
()

[:||||||||||||:]

поздновато ты на генту решился ...

самая круть в оптимизации это пакет атвоматизированно перебирающий флаги и выбирающий из них оптимальные для каждой собираемой единицы ПО

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

> поздновато ты на генту решился ...

почему? я вообще ее просто так поставил на ноуте, для общего развития

JB ★★★★★
() автор топика
Ответ на: комментарий от Syncro

Да, было что-то такое!
Где-то и тут проскальзывало.
Но, что-то мне подсказывает, что тогда, при всех вариантах, время сборки стремится к бесконечности =)))))))

ManJak ★★★★★
()
Ответ на: комментарий от ManJak

ога, кратчайший путь к нирване с точки зрения джен-буддизма:)

Syncro ★★★★★
()
Ответ на: комментарий от JB

>наткнулся тут на чужой make.conf

>CFLAGS="-march=pentium-m -pipe -O3 -mtune=pentium-m >-momit-leaf-frame-pointer -ftracer -ffast-math -fomit-frame-pointer >-fforce-addr -frename-registers -falign-functions=64" >CXXFLAGS="${CFLAGS} -frepo" >LDFLAGS="-W1,-o1"

>жесть

да ладно тебе...почти стандартный jackass! 2005.2...ты вот нам лучше скажи, версия гцц у тя какая? :)

anonymous
()
Ответ на: комментарий от anonymous

> да ладно тебе...почти стандартный jackass! 2005.2..

кто кто? O_o

> ты вот нам лучше скажи, версия гцц у тя какая? :)

4.1.1

JB ★★★★★
() автор топика

:) Давай мерятся! У меня все равно длиннее ;)

CFLAGS="-march=pentium-m -O3 -pipe -fomit-frame-pointer -momit-leaf-frame-pointer -fforce-addr -frename-registers -ftracer -fweb -mfpmath=sse -mmmx -msse -msse2 -fprefetch-loop-arrays"

CFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer -momit-leaf-frame-pointer -fforce-addr -frename-registers -ftracer -fweb -mfpmath=sse -mmmx -msse -m3dnow -fprefetch-loop-arrays"

CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
LDFLAGS="-Wл,-O1 -Wl,--sort-common -s"

Еще есть -fvectorize-loops но у gtk+ с ним проблемы. Вот думаю приписать -ffast-math.

Про -O2 vs. -О3 надо думать. У меня на ноуте стоит хитачи диск на 7200 оборотов в минуту. Скорость у него не плохая, поэтому не так заметна потеря производительности при изначальной загрузке програм/библиотек с диска. На десктопе у меня 1.5 гига рамы - там кеш спасает (я этот комп на работе нашел. его хотели выкинут :) ). А вообще на более старых компах -О2 выиграет по производительности.

-ffast-math по идее даст хороший выиграшь но если ты занимаешся хоть какиме то вычислениями - не стоит. С другой стороны Меса компилится именно с быстрой математикой.

Krechet
()
Ответ на: комментарий от Krechet

> А да и гцця у меня 4.1.1 и глибця 2.4. по джакасу деллал.

у меня тоже glibc 2.4, ставил с обычного 2006.0 stage3

JB ★★★★★
() автор топика
Ответ на: комментарий от Syncro

Опа! А это вафли:

[-frename-registers] Avoid using this flag at all. It's pointless on any architectures except for PPC and x86_64, and it's buggy even there. It slows down compiling noticeably too.

Krechet
()
Ответ на: комментарий от dilmah

> вообще-то на современном gcc желательно добавлять -fno-strict-aliasing

а что оно означает?

JB ★★★★★
() автор топика

CFLAGS="-O2 -pipe -march=c3-2 -mtune=c3-2 -msse -mmmx"

UserUnknown ★★★★★
()

при сборке Irrlicht c -march=pentium-m или -march=i686 перестает работать обработка столкновений, никто с подобным не сталкивался?

Dapper, gcc-4.0 и 3.4, процессор PM-740

inoremap ★★
()

Тырю флаги с shootout.alioth.debian.org - там они практически идеально подобраны.

AiLr ★★
()
Ответ на: комментарий от YesSSS

> Лучше юзы покажи. Они рулят.

$ cat /etc/make.conf | grep USE
USE="X aac acpi alsa -apm -arts bash-completion bluetooth bzip2 cairo cdr -cups dbus dri dvd dvdr -esd ffmpeg firefox gnome gpm gtk2 glitz gnutls hal ieee1394 -ipv6 -kde lcms libnotify mmx mp3 nptl nptlonly -oss opengl pam pango pcmcia pdf png slang startup-notification sse sse2 ssl svg sqlite truetype -qt4 unicode wifi win32codecs zlib"

JB ★★★★★
() автор топика
Ответ на: комментарий от JB

> ну так показывай CFLAGS и LDFLAGS! ;)

Ты же их видел :)

CFLAGS="-mcpu=pentium4 -O2 -pipe -mtune=pentium4 -march=i686"
CXXFLAGS="-mcpu=pentium4 -O2 -pipe -mtune=pentium4 -march=i686"

Так что ничего особенного, за мифическим % не гонюсь.

Дома ещё LDFLAGS="-Bdirect" и вместо pentium4 athlon-xp

Lumi ★★★★★
()

заметил у многих длинные строчки CFLAGS, а между тем порой достаточно указать -march и -Ox. Для примера, в первой строчки JB не обязательно указывать "-msse2 -mmmx", ибо ман гсс глаголит нам:

"pentium4, pentium4m

Intel Pentium4 CPU with MMX, SSE and SSE2 instruction set support."

зы у меня простенько =) : -O3 -march=athlon64 -mfpmath=sse

ale ★★
()

CFLAGS="-Os -mtune=athlon-xp -mcpu=athlon-xp -fomit-frame-pointer -pipe -momit-leaf-frame-pointer -ftracer -fweb "

CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"

LDFLAGS="-Wl,-Os -Wl,--sort-common -s,-z,combreloc,--as-needed"

mic ★★★★★
()
Ответ на: комментарий от Demetrio

>Сборище маньяков :)

да, мы красноглазые маньяки :)

mic ★★★★★
()
Ответ на: комментарий от Lumi

>CFLAGS="-mcpu=pentium4 -O2 -pipe -mtune=pentium4 -march=i686"

-march=cpu-type

Generate instructions for the machine type cpu-type. The choices for cpu-type are the same as for -mtune. Moreover, specifying -march=cpu-type implies -mtune=cpu-type.

-mcpu=cpu-type

A deprecated synonym for -mtune.

зы интересно а какие опции при этом CFLAGS он реально использует.

ale ★★
()
Ответ на: комментарий от Shaman007

И откликнулись на зофф Слгвари и Гентушники, и повыползали их своих уютных норок на свет божий, и пошли по дорогам, распевая: "O3 mtune march и pipe!"

CFLAGS="-O3 -pipe -march=athlon64 -mtune=athlon64" Gentoo x86_64

Belt
()
Ответ на: комментарий от ale

> интересно а какие опции при этом CFLAGS он реально использует

Что тут интересного? -march=i686 -- на первом пеньке просто ничего не запустится по определению, не ниже PPro, -mtune=pentium4 -- оптимизация кода под четвёртый пень, -mcpu=pentium4 -- это оставлено на всякий случай, для совместимости со старенькими программами, где для сборки использовался именно этот флаг. Никакого тумана нет.

Lumi ★★★★★
()
Ответ на: комментарий от JB

> > вообще-то на современном gcc желательно добавлять -fno-strict-aliasing

> а что оно означает?

иногда бывает не совсем корректный код (особенно в ядрах) -- без этого ключа gcc может его так заоптимизировать, что он будет делать не то что нужно.

dilmah ★★★★★
()
Ответ на: комментарий от Lumi

>Что тут интересного?

Повторю:

-march=i686 (The choices for cpu-type are the same as for -mtune. Moreover, specifying -march=cpu-type IMPLIES -mtune=cpu-type) Т.е. упоминание -march=cpu-type ПОДРАЗУМЕВАЕТ -mtune=cpu-type

ну так вот вотличии от -mtune=i686, -mtune=pentium4 включает опции -mmmx -msse -msse2. Вопрос какой mtune в данном случае будет использоватся.

ale ★★
()
Ответ на: комментарий от Shaman007

>Понятия не имею. У меня комп для работы.

У меня, тоже (Ubuntu поставил и работаю) =)
А дома, что работать чтоль? (Выходные, если заняться нечем и работать не надо)

ManJak ★★★★★
()

CFLAGS="-march=athlon-tbird -fprofile-use -mmmx -m3dnow -O3 -pipe"

-march=foo включает -mmmx и -m3dnow или нет? В мане как-то размыто про это сказано...

Sphinx ★★☆☆
()

march=pentium4 -O3 -pipe -fomit-frame-pointer

SteepZ
()
Ответ на: комментарий от YesSSS

Ой, не убивайте... :D

USE="X acpi alsa apache2 arts artworkextra avi bzip2 dba dbus djvu \
     bluetooth bootsplash browserplugin cairo calendar cgi cli codecs \
     cups curl dillo directfb divx4linux doc dri dvd encode erandom \
     esd examples exif fbcon firebird firefox flatfile font-server \
     ftp gd gif gimp -gimpprint glx gphoto2 graphicsmagick \
     graphviz gstreamer gtk2 gtkhtml java jmx gnome gtk gtk2 hal iconv \
     icu icq imagemagick imap -ipv6 jabber javascript jpeg jpeg2k \
     kde kdeenablefinal kdepim kdexdeltas latex lcms ldap maildir \
     mhash mmx mng mp3 mono mozcalendar mozdevelop mozilla mozsvg \
     mpeg mpeg4 mysql nls nntp nptl nsplugin ogg oggvorbis openal \
     opengl pango pci pcntl pcre pda pdf pear perl php pic png \
     postgres povray ppds pthread qt quicktime radeon rdesktop real \
     sasl scanner session slang spell sqlite sse sse2 -static svg \
     tcltk tetex tiff unicode usb userlocales utf8 vhosts vorbis \
     win32codecs wmf xface -xfree86 xinetd xml xmms xprint xorg \
     xscreensaver xsl zip silvercity modperl fastcgi beagle chm \
     epiphany gsf network webservices nautilus samba tools logrotate xine \
     cdr cddb yaz nptlonly aspell libnotify vmware \
     bash-completion networkmanager syslog ffmpeg ruby nocd xattr memlimit \
     xmlrpc pthreads toolbar haskell sql subversion irc lj msn rss qt4 \
     cvs 7zip glitz oscar aac flac wma asf dts vcd musicbrainz \
     lm_sensors srv extras development games office printer ssh gaim \
     bonobo tagwriting effects fam idn ieee1394 mime ocaml posix \
     radius sqlite3 v4l wxwindows amarok audacious cdrom fat gs \
     jython math music net ntfs nvidia opera rar reiserfs screen \
     themes tga thumbnail timidity web webdav wxgtk1 xchat xcomposite \
     xrandr ole xvid lzw lua memcache -oss -threads flash vim icon \
     audiofile jce gcj audio tcl tk"

KRoN73 ★★★★★
()
Ответ на: комментарий от AiLr

Не, у меня федора. =)

Просто USE - очень разумная штука.

YesSSS ★★★
()
Ответ на: комментарий от YesSSS

>Пипец =)

Одно радует - я их вижу очень редко. Обычно добавть/удалить/сбросить в состояние по умолчанию для флагов через euse делаю :)

Собираюсь компилить пакет, вижу, что у него какой-то незанкомый флаг, смотрю по euse -i <флаг> и, если нахожу интересным (или неинтересным) - включаю/выключаю через euse -E или euse -D <флаг> :)

А он уже сам make.conf ковыряет...

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.