gcc 4.4.x и -fprofile-** (-fprofile-dir реальная тема в новом компилляторе)

Sabayon, Calculate, Funtoo, Exherbo

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

Аватара пользователя
Fireal
Сообщения: 26
ОС: Gentoo

gcc 4.4.x и -fprofile-**

Сообщение Fireal »

Господа, УРА!! Теперь в новой версии gcc опцией "-fprofile-dir" можно задавать путь для сбора статистики и последующего её использования, и это работает!!! :) Пробовал компиллировать libvorbis и vorbis-tools - ускорение ощутимое! :) На Atllon64 3000+ скорость кодирования из flac'а 19-20x получается, т.е. +10% к моей тотальной оптимизации без использования профилей :) И это без пересборки мира! :)

Проблемы начались при пересборки мира, portage упал :( но видимо не из-за профилей... до этого делал зачистку системы, возможно там накасячил... поставлю gentoo заново, там посмотрим...

Предлагаю в этой теме отписываться, у кого что получилось или наоборот закосячилось с использованием профилей.
Спасибо сказали:
Dimanish
Сообщения: 80
ОС: Gentoo GNU/Linux

Re: gcc 4.4.x и -fprofile-**

Сообщение Dimanish »

Для тех кто в танке или не каждый день следит за перипетиями в changelog'е gcc - можно поподробнее? В какой конкретно версии gcc появилась возможность использовать сбор статистики?
Как gcc использует эту статистику?
Что за профили и как их включить? Надеюсь имеется соответствующий USE флаг? :)
Registered Linux User #472660
Спасибо сказали:
Аватара пользователя
Xaktyc
Сообщения: 604
ОС: Gentoo 2008.0, WinXP

Re: gcc 4.4.x и -fprofile-**

Сообщение Xaktyc »

fireal писал(а):
17.08.2009 07:01
Проблемы начались при пересборки мира, portage упал но видимо не из-за профилей..

Портеж работает на питоне, поэтому врядли. Интересно, что конкретно ты там чистил и косячил.
Спасибо сказали:
Аватара пользователя
Fireal
Сообщения: 26
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение Fireal »

Dimanish писал(а):
17.08.2009 12:00
Для тех кто в танке или не каждый день следит за перипетиями в changelog'е gcc - можно поподробнее? В какой конкретно версии gcc появилась возможность использовать сбор статистики?
Как gcc использует эту статистику?
Что за профили и как их включить? Надеюсь имеется соответствующий USE флаг? :)
Вот в этой статье многое объясняется GCC: компилляция на форсаже с турбонаддувом, собственно она и вдохновила на эксперименты. Возможность использования профилей появилась давно, но было проблемно организовать сбор нужной статистики в нужном месте. В версии компиллятора 4.4.* появился параметр, задающий самое место, что значительно упростило использование этой вкуснейшей из возможностей :)
Вот ещё полезная ссылочка по флагам оптимизации :)
А это собственно та вкусность, которую добавили в новой версии компиллятора:
-fprofile-dir=path
Set the directory to search the profile data files in to path. This option affects only the profile data generated by -fprofile-generate, -ftest-coverage, -fprofile-arcs and used by -fprofile-use and -fbranch-probabilities and its related options. By default, GCC will use the current directory as path thus the profile data file will appear in the same directory as the object file.



Xaktyc писал(а):
17.08.2009 14:46
fireal писал(а):
17.08.2009 07:01
Проблемы начались при пересборки мира, portage упал но видимо не из-за профилей..

Портеж работает на питоне, поэтому врядли. Интересно, что конкретно ты там чистил и косячил.
После продолжительного использования системы решил всё удалить и как-бы заново поставить. Сделал emerge --unmerge <весь несистемный софт типа kde, xorg, mplayer и.т.д..>, потом emerge --depclean, далее потестил новую оптимизацию с профилями, и добавя к CFLAGS -fprofile-generate стал делать emerge -vuDN world, сделав перед этим emerge --sync :)
Спасибо сказали:
Аватара пользователя
Xaktyc
Сообщения: 604
ОС: Gentoo 2008.0, WinXP

Re: gcc 4.4.x и -fprofile-**

Сообщение Xaktyc »

И как? Собственно в чем был замечен прирост-то?
Спасибо сказали:
Аватара пользователя
Fireal
Сообщения: 26
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение Fireal »

Xaktyc писал(а):
18.08.2009 13:47
И как? Собственно в чем был замечен прирост-то?
Я конкретно oggenc тестировал из пакета vorbis-tools, собрав предварительно libvorbis тоже с обратной связью.
С простой оптимизацией скорость кодирования альбома Deftones Deftones на Athlon64 3000+ из flac'а в ogg была ~16x, с новой же стала ~19.5x.
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение sspphheerraa »

fireal писал(а):
17.08.2009 07:01
Господа, УРА!! Теперь в новой версии gcc опцией "-fprofile-dir" можно задавать путь для сбора статистики и последующего её использования, и это работает!!! :)

хы, интересно - аналогино кодированию видео в несколько проходов (с использованием статистики предыдущего прохода)
Ждемс тестов компиляции ОО :yes4:
Sspphheerraa
Спасибо сказали:
Аватара пользователя
Fireal
Сообщения: 26
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение Fireal »

sspphheerraa писал(а):
19.08.2009 00:10
fireal писал(а):
17.08.2009 07:01
Господа, УРА!! Теперь в новой версии gcc опцией "-fprofile-dir" можно задавать путь для сбора статистики и последующего её использования, и это работает!!! :)

хы, интересно - аналогино кодированию видео в несколько проходов (с использованием статистики предыдущего прохода)
Ждемс тестов компиляции ОО :yes4:
Компиляция будет естественно дольше :D Тут фишка в производительности софта после пересборки...
Спасибо сказали:
Аватара пользователя
proDOOMman
Сообщения: 284

Re: gcc 4.4.x и -fprofile-**

Сообщение proDOOMman »

А я думал, что это работает как ccache
Ubuntu LL x86 on Acer Extensa 5635G
Спасибо сказали:
Аватара пользователя
Fireal
Сообщения: 26
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение Fireal »

proDOOMman писал(а):
19.08.2009 08:13
А я думал, что это работает как ccache
Надо было тему в программирование однако, ибо фишка дистронезависима.... :)
Спасибо сказали:
Аватара пользователя
proDOOMman
Сообщения: 284

Re: gcc 4.4.x и -fprofile-**

Сообщение proDOOMman »

fireal писал(а):
19.08.2009 08:24
proDOOMman писал(а):
19.08.2009 08:13
А я думал, что это работает как ccache
Надо было тему в программирование однако, ибо фишка дистронезависима.... :)

Но только в генте gcc используется так часто ;-)
Ubuntu LL x86 on Acer Extensa 5635G
Спасибо сказали:
Аватара пользователя
Fireal
Сообщения: 26
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение Fireal »

proDOOMman писал(а):
19.08.2009 15:43
fireal писал(а):
19.08.2009 08:24
proDOOMman писал(а):
19.08.2009 08:13
А я думал, что это работает как ccache
Надо было тему в программирование однако, ибо фишка дистронезависима.... :)

Но только в генте gcc используется так часто ;-)
Бгг :) А Debian? Он ведь тоже source-based, просто не все об этом знают :D
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: gcc 4.4.x и -fprofile-**

Сообщение Poor Fred »

fireal писал(а):
19.08.2009 05:07
Тут фишка в производительности софта после пересборки...

Я вот только не понял - действует ли оптимизация для другой, обновленной, версии проги? Или каждый раз надо два раза пересобирать?
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
Fireal
Сообщения: 26
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение Fireal »

Poor Fred писал(а):
20.08.2009 06:15
fireal писал(а):
19.08.2009 05:07
Тут фишка в производительности софта после пересборки...

Я вот только не понял - действует ли оптимизация для другой, обновленной, версии проги? Или каждый раз надо два раза пересобирать?
2 раза пересобирать. Между пересборками нужно ещё и запускать прогу, чтобы набрать статистику :)
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: gcc 4.4.x и -fprofile-**

Сообщение Poor Fred »

fireal писал(а):
20.08.2009 09:06
Между пересборками нужно ещё и запускать прогу, чтобы набрать статистику :)

Да это понятно.

Похоже, для десктопа не очень подходит. Скорее для встраиваемых или редко обновляемых систем.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение sspphheerraa »

fireal писал(а):
19.08.2009 05:07
Компиляция будет естественно дольше :D Тут фишка в производительности софта после пересборки...

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

на данный момент с использованием прелинка ОО достаточно быстро работает если самосборный,
если получится повысить его производительность еще процентов на двадцать, то будет вообще отлично :)

Poor Fred писал(а):
20.08.2009 10:06
fireal писал(а):
20.08.2009 09:06
Между пересборками нужно ещё и запускать прогу, чтобы набрать статистику :)

Да это понятно.

Похоже, для десктопа не очень подходит. Скорее для встраиваемых или редко обновляемых систем.

Почему7 для таких монстров как KDE или OO это, по-моему, более чем актуально... а ведь это типичные десктопные компоненты
Sspphheerraa
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: gcc 4.4.x и -fprofile-**

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

sspphheerraa писал(а):
20.08.2009 18:42
на данный момент с использованием прелинка ОО достаточно быстро работает если самосборный,
Как может помочь прелинк OOo, если ощутимая часть OOo написана на Java, а *большая* часть библиотек подгружается динамически?
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: gcc 4.4.x и -fprofile-**

Сообщение Poor Fred »

sspphheerraa писал(а):
20.08.2009 18:42
Почему7 для таких монстров как KDE или OO это, по-моему, более чем актуально... а ведь это типичные десктопные компоненты

Ну если только 3,5 :) А 4-ка то и дело обновляется, да новые релизы выходят.
Давеча попробовал пересобрать с этим флагом все qt-*, но некоторые не стали с ним собираться. Пришлось их пропустить. Так это надо тогда записывать, что именно собралось с новым флагом и что нужно будет позже пересобрать. Короче, практически махнул на эту фичу рукой. Так, если только отдельные проги, Firefox, Thunderbird там к примеру...
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
mikki43306
Сообщения: 172
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение mikki43306 »

...а может и сам gcc)
Часы–пингвин - хороший аксессуар в комнате малыша.
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение sspphheerraa »

serzh-z писал(а):
20.08.2009 19:08
sspphheerraa писал(а):
20.08.2009 18:42
на данный момент с использованием прелинка ОО достаточно быстро работает если самосборный,
Как может помочь прелинк OOo, если ощутимая часть OOo написана на Java, а *большая* часть библиотек подгружается динамически?

не знаю, но факт остается фактом (прирост в 2 секунды при запуске появился)
фигня, а приятно
Sspphheerraa
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: gcc 4.4.x и -fprofile-**

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

sspphheerraa писал(а):
23.08.2009 11:58
прирост в 2 секунды при запуске появился
Гм, ну я бы этого и не заметил - ибо с секундомером за компьютером не сижу. =)
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение sspphheerraa »

Поставь в трее часы с секундной стрелкой,
ничего военного в измерениях нет :)
Sspphheerraa
Спасибо сказали:
Аватара пользователя
Fireal
Сообщения: 26
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение Fireal »

Ещё вот интересно... на сколько эта профильная оптимизация зависит от типа процессора? Ведь заключается она в построении более оптимального кода на основе анализа работы программы... т.е. будем ли мы иметь эту оптимизацию в бинарных дистрибутивах, устанавливаемых на разные процессоры?...
А может уже имеем?
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: gcc 4.4.x и -fprofile-**

Сообщение sspphheerraa »

сомневаюсь
Sspphheerraa
Спасибо сказали:
Аватара пользователя
Gogast
Сообщения: 549
ОС: Gentoo amd64

Re: gcc 4.4.x и -fprofile-**

Сообщение Gogast »

можно иметь.
если при пересборке использовать статистику, получаемую только в процессе сборки.
тоесть используя общие флаги типа -m32 или -m64 вместо -march= и сразуже, без запуска пересобирая её ещё раз
Без виндовза 3 года
Спасибо сказали: