The OpenNET Project / Index page

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

Оценка производительности GCC на новых процессорах AMD

04.12.2011 20:57

Ресурс Phoronix провёл тестирование производительности кода, собранного различными версиями GCC (4.2.4, 4.3.6, 4.4.6, 4.5.3, 4.6.1 и 4.7-dev). Тестирование было выполнено на системе с процессором AMD FX-8150, основанным на новой архитектуре AMD Bulldozer. Сборка была произведена с опциями "-march=native -mtune=native -O3".

В тесте C-Ray отмечается заметное повышение производительности при использовании тестового снапшота GCC 4.7. В тестах LAME и Flac заметен небольшой прирост производительности при использовании GCC 4.7. В тестах 7-Zip и FFmpeg все версии GCC показали примерно одинаковые результаты. В тесте GraphicsMagick отмечается существенное замедление работы при использовании GCC 4.7, в то время как GCC 4.6.1 показал наилучшие результаты. При измерении времени сборки PHP и Apache, отмечается небольшое уменьшение скорости сборки в GCC 4.7.



  1. Главная ссылка к новости (http://www.phoronix.com/scan.p...)
  2. OpenNews: Сравнение производительности результирующего кода GCC 4.6, LLVM/Clang 3.0 и AMD Open64
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/32461-gcc
Ключевые слова: gcc, benchmark
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (49) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 21:11, 04/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    зачем -O3 ??
     
     
  • 2.3, XPEH (?), 21:34, 04/12/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Патамушта эта крута. Фороникс же.
     
     
  • 3.44, Аноним (-), 15:14, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Патамушта эта крута. Фороникс же.

    Ну вы же не сделали бенчмарков лучше. Вот и приходится довольствоваться форониксом.

    Ну, покажите всем вашу круть! Сделайте лучше! (А мы обосрем, как вы фороникс)

     

  • 1.4, Аноним (-), 21:39, 04/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > -march=native -mtune=native

    Что за нелепый набор опций? AFAIK, -march оптимизирует под конкретную модель процессора с потерей совместимости со всеми остальными, -mtune оставляет совместимость ценой недостаточной оптимизации (т.е., например, инструкции нового процессора не используются)

     
     
  • 2.8, Анонимко (?), 22:17, 04/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >-march оптимизирует под конкретную модель процессора

    А что по-твоему делает -mcpu?

     
     
  • 3.9, Аноним (-), 22:22, 04/12/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это устаревший аналог -mtune
     
  • 2.15, Аноним (-), 00:56, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > с потерей совместимости со всеми остальными, -

    Ну так фороникс тестил чего в принципе можно выжать на бульдозере. А зачем вам совместимость с атомом если у вас бульдозер и вы билдите лично для себя, например?

     
     
  • 3.17, Аноним (-), 01:10, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Для этого есть -march, и как раз его надо было использовать. Для сохранения совместимости есть -mtune, а Похороникс умудрился заюзать оба сразу. Это похоже на попытки ниасилившего ман ламера напихать побольше ключей, "шоп наверняка". Хорошо еще, что не указали сразу x86 и x64
     
     
  • 4.21, Аноним (-), 08:40, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Для этого есть -march, и как раз его надо было использовать. Для
    > сохранения совместимости есть -mtune, а Похороникс умудрился заюзать оба сразу.

    Ну да, однако тут вполне работает принцип "кашу маслом не испортишь". В смысле, форсануть набор команд в именно такой, а потом еще и захинтить что надо оптимизить под этот же проц вроде ничему такому особо не противоречит, хоть и избыточно.

    > Это похоже на попытки ниасилившего ман ламера напихать побольше ключей, "шоп наверняка".
    > Хорошо еще, что не указали сразу x86 и x64

    Да я не сомневаюсь что лэйбаки клеить проще чем бенчи проводить. Поэтому читаем мы все-таки похороникса, у которого хоть какие-то бенчи есть.

     
  • 2.27, Клован (?), 09:10, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Да, все верно. Но компилируется же исходник на стороне пользователя, и ему такая оптимизация очень даже.
    А... Забыл, на линуксе ведь все распространяется через собранные где то там под каким то там железом пакеты? Ну чтож, ССЗБ. Этой проблемы в FreeBSD нет например. Потому что опенсорс - это способность собирать из сорцов. И не надо кричать, что "долго ждать пока все соберется" - при сегодняшних мощностях железа это уже минуты.  
     
     
  • 3.33, daks (ok), 10:56, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Открой для себя Gentoo и производные (Sabayon, Calculate и тп.), о юный адепт бсд. Хотя чё й то я такого толстого кормлю..
     
     
  • 4.34, Клован (?), 12:05, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > Открой для себя Gentoo и производные (Sabayon, Calculate и тп.)

    Спасибо, только закрыл.

     
     
  • 5.37, Аноним (-), 13:19, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Спасибо, только закрыл.

    Судя по тому, как вы распространялись выше о бинарных линуксах, слово gentoo вы явно увидели в первый раз.

     
  • 3.36, Аноним (-), 13:18, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Забыл, на линуксе ведь все распространяется через собранные где то там под каким то там железом пакеты? Ну чтож, ССЗБ. Этой проблемы в FreeBSD нет например.

    Вранье. Во фре тоже бинарные пакеты =)

     
  • 3.38, Аноним (-), 13:24, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, все верно. Но компилируется же исходник на стороне пользователя, и ему такая оптимизация очень даже.

    Как показывали неоднократные бенчмарки, компиляция под конкретный проц дает в среднем 1-2% прироста производительности. С точки зрения обычного пользователя, игра не строит свеч.

    > И не надо кричать, что "долго ждать пока все соберется" - при сегодняшних мощностях железа это уже минуты.

    Ну, если кому-то мамочка постоянно дает деньги на топовый игровой комп...
    А у людей, которые ценят свои деньги и адекватно расходуют их, компы обычно не самые топовые. И на установку крупных пакетов софта могут уходить часы. Учитывая необходимость периодических обновлений, этот пресловутый 1% прироста в любом случае не оправдан.

     
     
  • 4.41, фтыш (?), 14:19, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ох уж эти сказочники.
    У меня на одноядерном атлоне за 5 лет использования генту статистика дает следующее - на сборку тратится в среднем 5-10 минут 100% загрузки CPU в день.
    Да у меня проигрывание видео с pp7,hqdn3d,gradfun на порядок-два больше забирает ресурсов.
     
     
  • 5.42, FractalizeR (ok), 14:31, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    GIMP сколько собирается?
     
     
  • 6.58, Он (??), 17:02, 28/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Wed Oct 19 18:27:52 2011 >>> media-gfx/gimp-2.6.11-r5
           merge time: 4 minutes and 12 seconds.
     
  • 2.43, vayerx (ok), 15:08, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    specifying -march=cpu-type implies -mtune=cpu-type

    -mtune=cpu-type
    Tune to cpu-type everything applicable about the generated code, except for the ABI and the set of available instructions.

    -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.

     

  • 1.12, Аноним (-), 00:12, 05/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да фигня это все. Сегодня есть проблема, а завтра пофиксили. В Bulldozer есть издержки из-за архитектуры, но и это компенсируется с лихвой. Сейчас качество софта и прямота рук программиста куда важнее чем микрооптимизация.

    P.S.: А с -O3 я бы не стал собирать, так как бывают проблемы. Кому интересно - попробуйте собрать zlib, firefox (вероятно в новых версиях уже пофиксили).

     
     
  • 2.22, Аноним (-), 08:57, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > P.S.: А с -O3 я бы не стал собирать, так как бывают проблемы.
    > Кому интересно - попробуйте собрать zlib, firefox (вероятно в новых версиях уже пофиксили).

    Бывают, факт. Что-то сверх -O2 и -Os - для любителей поэкспериментировать.

     

  • 1.13, anonymous (??), 00:12, 05/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    И откуда такая регрессия в производительности? gcc начал скатываться?
     
     
  • 2.16, Аноним (-), 01:06, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >И откуда такая регрессия в производительности? gcc начал скатываться?

    Нет, скорее регрессия от того что архитектура новая и, как и полагается, под новую архитектуру надо соответствующие способы тюнинга кода. Ничего страшного в этом нет - код дополнят/доработают под новые требования.

     
  • 2.18, anonymous (??), 03:32, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    4.7 != 4.6, и выйдет только в марте или апреле 2012г. http://gcc.gnu.org/ml/gcc/2011-11/msg00200.html

    Ваш К. О.

     
  • 2.19, ананим (?), 06:43, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Угу.
    В 3 тестах увеличение производительности, в 2 примерно таже и в 1 уменьшение.
    Тролячий вывод на лицо — ажназначна начал скатываться.
     
  • 2.23, Аноним (-), 08:58, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > И откуда такая регрессия в производительности? gcc начал скатываться?

    Наверное оттуда что это хрензнаеткакая экспериментальная версия :)). А вам gcc чем-то мешает жить что вы ему пытаетесь приписать что-нить нелестное?

     
  • 2.31, kuku (?), 10:19, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Первое
    Знаешь, я незнаю строение компилятора, но знаю одно:
    что на стадии генерации инструкции процессора происходит
    глубокий анализ и переработка инструкции в несколько
    проходов. А это значит, что компилятор на N-ом проходе
    по тем или иным признакам ищет цепочку инструкций которую
    можно оптимизировать.

    Второе
    С архитектурой процессоров знаком ? Например, что такое
    конвейер ? Сколько их в ядре ? Сколько ядер в процессоре ?
    Сколько процессоров в системе ? Сколько диспетчеров, то есть
    координирующих узлов в системе или процессоре ?
    А может это не процессор, а нечто имеющее несколько
    вычислительных узлов и мощный, многоуровневый менеджер памяти ?

    Третье
    Компилятор поддерживает ли "специфику" той системы на которой он
    работает ? Хорошо ли согласуется выполнение программы с
    операционной системой ?

    Подумай...
    Посмотри на PathScale...

    А GCC эээ... это как бы компилятор рассчитанный на поддержку
    многих платформ, или систем, кому как. То есть что-то близко
    к универсальному... Да ?

    Если есть ошибки поправьте.

     

  • 1.14, Аноним (-), 00:49, 05/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это важно насколько долго собирается софт? Пусть собирается сутки, но работает на 2% быстрее.
     
     
  • 2.20, dalco (ok), 07:52, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зависит от...

    Если софтина будет годами крутиться на кластере из тысяч нод, то, ясен пень, лишние сутки сборки роли не играют.

    Если требуется замутить нечто одноразовое, выдающее результат через 10 секунд расчетов, то ждать сборки лишние сутки, мягко говоря, не оптимально.

    Ваш К.О.

     
     
  • 3.26, Аноним (-), 09:06, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >кластере из тысяч нод
    >AMD

    Сомнительно.

     
     
  • 4.30, Аноним (-), 09:55, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http://www.nccs.gov/computing-resources/jaguar/
     
  • 2.29, iZEN (ok), 09:48, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Это важно насколько долго собирается софт? Пусть собирается сутки, но работает на 2% быстрее.

    В системах с непрерывной интеграцией ВАЖНО сколько времени отводится на сборку ПО. Так как непрерывный цикл разработки предполагает быстрые изменения, а C++ ещё не научили модульности на уровне исходного кода (в отличие от Pascal и Java), когда единицей компиляции является один файл, а для его компиляции нужны только уже откомпилированные бинарные модули (.tpu в архаичном Borland Pascal, .dcu в устаревшем Delphi, .class в Java и т.д.). Для сборки больших C++ программ приходится изобретать различные ухищрения, так как компиляция фактически сборной простыни из "инклюдов", собранной препроцессором из исходников, отнимает непозволительно много времени.

     
     
  • 3.35, Аноним (-), 13:12, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    я конечно, не профессионал, но... *.o файлы не то же самое?

    и Pascal и Java "компилируются" в байткод.

     
  • 3.46, Аноним (-), 15:26, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Отсюда вытекает мораль тебе и твоей бсде в продакшне делать нечего Большинству... большой текст свёрнут, показать
     
     
  • 4.52, Ytch (?), 22:46, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> фактически сборной простыни из "инклюдов", собранной препроцессором из исходников, отнимает непозволительно много времени.
    > Так и скажи, не осилил пересборку только измененного :)

    Еще про precompiled header расскажи...

     
  • 3.51, Аноним (-), 22:45, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    .tpu в архаичном Borland Pascal, .dcu в устаревшем Delphi, .class в ненужной Java

    извините, не удержался :)

     
  • 3.53, Аноним (-), 22:59, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В основном C долго компилируется, т к язык намного сложнее для разбора, в сра... большой текст свёрнут, показать
     
  • 2.39, Аноним (-), 13:27, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Это важно насколько долго собирается софт? Пусть собирается сутки, но работает на
    > 2% быстрее.

    Если обновлять хотя бы раз в месяц, то 2% явно не оправдают потери 1/30 (3,3%) рабочего времени.

     
     
  • 3.40, Аноним (-), 13:28, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Если обновлять хотя бы раз в месяц, то 2% явно не оправдают

    А обычно оно гораздо меньше, повезет, если больше одного процента.

     
     
  • 4.47, Аноним (-), 15:27, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А обычно оно гораздо меньше, повезет, если больше одного процента.

    Correct. Но бывают случаи когда некое сочетание параметров может выстрелить и в пару раз. Типа как pathscale на амд в бенчах фороникса на паре тестов.

     

  • 1.28, Аноним (-), 09:38, 05/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У меня ОпенФоам, который окончательные вычисления делает больше недели на i7....
    О3 - дает 10-30% ускорения (зависит от модели)
    мне не ставить О3?
     
     
  • 2.32, Аноним (-), 10:42, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    с флагом компиляции -O3 велика вероятность получить глючный исполняемй код.
     
     
  • 3.45, Аноним (-), 15:19, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С этим флагом велика вероятность не получить вообще никакого кода.
     

  • 1.49, okruzhor (?), 18:00, 05/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Извините , что мимо темы . Не нашёл , куда сообщать о технических проблемах . Не к модераторам же стучать ...

    На многих беседах (и на этой тоже) одна беда : нельзя получить плоский вид с сортировкой постингов по времени . Нажатие на "сортировку по времени" переносит в "Релиз Linux-дистрибутива ZevenOS 4.0 ...."

     
     
  • 2.50, Maxim Chirkov (ok), 22:34, 05/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > На многих беседах (и на этой тоже) одна беда : нельзя получить
    > плоский вид с сортировкой постингов по времени . Нажатие на "сортировку

    На какой странице (в новостях или форуме) и на какую именно ссылку вы нажимайте ? Каким браузером пользуйтесь. Выход в сеть не через прокси ?

    > по времени" переносит в "Релиз Linux-дистрибутива ZevenOS 4.0 ...."

    Такое ощущение, что у вас из локального кэша это выдаётся без обращения к сайту.

     
     
  • 3.54, okruzhor (?), 16:34, 07/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> На многих беседах (и на этой тоже) одна беда : нельзя получить плоский вид с сортировкой постингов по времени . Нажатие на "сортировку по времени"
    > На какой странице (в новостях или форуме) и на какую именно ссылку вы нажимайте ? Каким браузером пользуйтесь. Выход в сеть не через прокси ?

    На этой самой (новость) , ссылка "сортировка по времени" :-)

    Opera 11.52 . Через прокси

    > Такое ощущение, что у вас из локального кэша это выдаётся без обращения к сайту.

    Да . У меня была отключена проверка обновления файлов в кэше . Получается , что для различных страниц с "сортировкой времени" генерируется одно и тоже имя файла в кэше ?

    Включил такую проверку "всегда" . Сработало , после того как обновил страницу с сортировкой по ответам

    Спасибо !

     
     
  • 4.55, okruzhor (?), 16:40, 07/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Хм! Продолжаю оффтоп . Править моё сообщение движок не даёт , мол "не ваше" . Однако создавать сообщение под своим ником я могу ! Значит всяк может постить с любым ником ? Пробовать не хочу , но это странная авторизация ...

     
     
  • 5.57, Maxim Chirkov (ok), 17:06, 07/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Хм! Продолжаю оффтоп . Править моё сообщение движок не даёт , мол
    > "не ваше".

    Править свои тексты можно войдя в форум как зарегистрированный пользователь.

    > Однако создавать сообщение под своим ником я могу. Значит всяк может постить с любым ником ?

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

     
  • 4.56, Maxim Chirkov (ok), 17:03, 07/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Да . У меня была отключена проверка обновления файлов в кэше .
    > Получается , что для различных страниц с "сортировкой времени" генерируется одно
    > и тоже имя файла в кэше ?

    Да, при нажатии на ссылку сортировки по времени вызывается один скрипт, который устанавливает Cookie и делает редирект на основе содержимого http_referer.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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