The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Оценка эффективности различных режимов оптимизации GCC

14.10.2012 23:43

Ресурс Phoronix опубликовал результаты выполнения серии тестов производительности, выполненных при сборке с использованием различных режимов оптимизации GCC 4.7.2 на AMD FX-8150 (Bulldozer). Результаты тестирования позволяют оценить насколько велики отличия в производительности при выполнении тех или иных тестов, собранных с разными флагами оптимизации (-O0, -O1, -O2, -O3, -Os, -Ofast). Как правило, отличия не столько существенны, но как и можно ожидать лидируют режимы "-O3" и "-Ofast", от которых немного отстаёт "-O2".

  1. Главная ссылка к новости (http://www.phoronix.com/scan.p...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/35080-gcc
Ключевые слова: gcc, optimization
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (28) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 23:47, 14/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А что это ещё за режимы оптимизации?
     
     
  • 2.12, Аноним (-), 02:17, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > А что это ещё за режимы оптимизации?

    Читайте маны, они рулез.

     
     
     
     
    Часть нити удалена модератором

  • 5.14, Аноним (-), 02:36, 15/10/2012 [ответить]  
  • +3 +/
    > Не нужно быть фанатом, нужно трезво оценивать ситуацию.

    Если трезво оценивать ситуацию, любая электроника может быть бракованной. Некоторый процент брака есть всегда. Что могут - ловят на этапе тестирования. Но как вы понимаете, возможен и случай когда чип кой-как пролез на грани а при малейшей деградации или изменении каких либо параметров - запаса не осталось и начались проблемы.

    Если посмотреть на интель - так у них вообще бывают совершенно лютые факапы. У них то юсб выгорал от малейшего пшика статики, унося за собой весь чипсет, т.к. чудаки зачем-то сэкономили за защите от статики в чипе. То sata порты отпадали через некоторое время работы, потому что транзисторы не к тому питанию вообще подключили, то еще какая пакость приключалась. При том это именно лажа в дизайне, а не просто случайность приведшая к неудачным параметрам конкретного кристалла, может быть одного на всю пластину. И ничо, пипл схавал :)

     

  • 1.8, terr0rist (ok), 01:22, 15/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Куда интереснее вопрос: были ли когда-либо у кого-либо проблемы с -О3 или -Оfast и тем более с -О2, и если нет, то почему их до сих пор не сделали по умолчанию.
     
     
  • 2.9, Аноним (-), 01:35, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    естественно, были, есть и будут. Потому по дефолту используют только -O2
     
  • 2.13, sam002_tmp (?), 02:22, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    О-о-о, да! Неизгладимые впечатления оставили глюки при сборки CLFS... Когда-то использовал рекомендации по составлению опитимизируемого кода, но глубже изучив gcc плюнул - нормальная сборка с -O3 дело случая, качественный код полезнее писать))
     
  • 2.15, DannyBoy (?), 03:00, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    wine например не будет пахать на системе скомпиленной на -O3. Только на -O2.
     
     
  • 3.18, Аноним (-), 06:48, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Пишу из Gentoo, полностью скомпилированной с "-march=amdfam10 -O3 -pipe". Wine работает.
     
     
  • 4.20, DannyBoy (?), 08:31, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Хм.. у меня вообще ни в какую. Пришлось всю на -O2 пересобирать. Пробовал отдельно глибец и вайн с -O2, но всё бестолку.
     
     
  • 5.24, Stax (ok), 11:20, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Обычно почти все, что начинает глючить от -O3 перестает при оптимизации  -O3 -fno-tree-vectorize

    Так как большая часть злобных багов в gcc как раз в модуле автовекторизации, который включается при -O3.

     
     
  • 6.29, DannyBoy (?), 13:29, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно. Запомню, но и на -O2 уже и так хорошо.
     
  • 4.28, Аноним (-), 12:02, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Пишу из Gentoo, полностью скомпилированной с "-march=amdfam10 -O3 -pipe". Wine работает.

    Звучит как "пишу из горящего танка" :)

     
  • 3.35, Anonimus Vulgaris (?), 20:30, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    DannyBoy, спасибо! Пересобрал сейчас wine с -О2 - и оно заработало! С -О3 у меня на Debian'e запускался криво, и вообще был считай неработоспособен...
     
  • 3.36, неО (?), 21:30, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > wine например не будет пахать на системе скомпиленной на -O3. Только на
    > -O2.

    откуда мыслишки?

     
  • 2.16, DannyBoy (?), 03:14, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    И да. -O2 это безопасная оптимизация. Т.е. прога к чертям не полетит от неё.
     
  • 2.17, Аноним (-), 06:36, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Куда интереснее вопрос: были ли когда-либо у кого-либо проблемы с -О3

    Да запросто. Безопасно только -O2, а на -O3 на ряде программ вполне могут вылезти очень странные, а иногда еше и трудноуловимые глюки.

     
  • 2.21, pro100master (ok), 09:44, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    большинство (FreeBSD) работают, в часности, мир переживает О3 и проблем не наблюдается. А вот некоторые программы, типа мускуля/посгре/файрбёрд, почти всегда в корке - их обычно отдельно с О2 собирают.
     
     
  • 3.25, XoRe (ok), 11:54, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > большинство (FreeBSD) работают, в часности, мир переживает О3 и проблем не наблюдается.
    > А вот некоторые программы, типа мускуля/посгре/файрбёрд, почти всегда в корке -
    > их обычно отдельно с О2 собирают.

    Бывало ловили глюки и на O3, и на O2.
    http://sysoev.ru/freebsd/digest1.html

     
     
  • 4.40, pro100master (ok), 01:00, 22/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Бывало ловили глюки и на O3, и на O2.
    > http://sysoev.ru/freebsd/digest1.html

    FreeBSD 5? Давай, до свидания (c) :)

     
  • 3.27, Аноним (-), 12:01, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > большинство (FreeBSD) работают, в часности, мир переживает О3 и проблем не наблюдается.

    "Если вам кажется что дела идут хорошо, значит вы просто чего-то не заметили".

     

  • 1.23, Аноним (-), 10:31, 15/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А раньше озон сливал.
     
     
  • 2.30, Аноним (-), 17:17, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Полным ламером это написано:

    > Компилятор таких изменений в процессорной линейке не фиксирует и определить не способен. Они учитываются адекватными разработчиками адекватных дистрибутивов

    на деле все наоборот, адекватные разработчики знать не знают о фишках ваших процессоров, и собирают пакеты под г-нo мамонта, плюс любят перестраховываться, собирая порой чуть ли не без оптимизаций вообще. В то же время компилятор с -march=native сам разберётся что у вас за процессор и соберет всё правильно. А O3 никто не мешает включать не для всего, а только там где он реально нужен - т.е. для числодробилок. И увеличением скорости всяких рейтрейсеров и физических рассчётов потом неосилятором оптимизаций в рoжу плевать.

     

  • 1.32, darkshvein (ok), 18:30, 15/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И опять же, насчёт -O3. Почему все виновато молчат и никто не говорит о чьих-нибудь кривых руках?
     
  • 1.33, Анонище (?), 19:14, 15/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Для применения -03 желательно понимать, что вся эта оптимизация хороша только на хорошем коде. Программисту надо знать, как gcc разбирает специфичные блоки кода и что в итоге получается на выходе.
     
     
  • 2.34, darkshvein (ok), 19:36, 15/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за ликбез
     

  • 1.37, John (??), 16:06, 16/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    IMHO: сомнительные результаты - достаточно большое различие -O2 и -Os.
    Например, здесь http://www.linux-mag.com/id/7574/1/ результаты несколько другие (правда для другого CPU и другой версии GCC).
     
     
  • 2.38, воланд (ok), 16:44, 16/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А какие тесты Phoronix не сомнительны? У них такие эпикфейлы есть, вообще странно, что еще хоть кто-то воспринимает их всерьез.
     
     
  • 3.39, Andrey Mitrofanov (?), 20:30, 16/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А какие тесты Phoronix не сомнительны? У них такие эпикфейлы есть, вообще
    > странно, что еще хоть кто-то воспринимает их всерьез.

    "Вот никаких и не читайте." ? "Вы не любите пролетариат!" :-P

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру