The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от opennews (ok) on 20-Фев-09, 23:30 
Надеясь разобраться в причинах отставания OpenSolaris в недавно проведенном тестировании (http://www.opennet.dev/opennews/art.shtml?num=20174), ресурс phoronix.com решил (http://www.phoronix.com/scan.php?page=article&item=sun_studi...) оценить разницу в производительности приложений, собранных компиляторами Sun Studio 12 (2008/10/07), GCC 3.4.3 и GCC 4.0.2. Тесты выполнялись на платформе OpenSolaris 2008.11.


Итоги:


-  В тесте (http://www.phoronix.com/scan.php?page=article&item=sun_studi...) на скорость кодирования MP3 в LAME, GCC 4 сборка выполнила задание за 43 секунды, GCC 3 - за 45, а Sun Studio 12 - за 127 сек., т.е. выполнялась в 3 раза дольше. При кодировании в формат Ogg  отставание Sun Studio 12 было не столь значительным: 37 против 27 секунд. Вероятно причиной отставания является недостаточное использование опций оптимизации при сборке программ в Sun Studio, в то время как при сборке в GCC разработчики задействовали более эффективные опции оптимизации ...

URL: http://www.phoronix.com/scan.php?page=article&item=sun_studi...
Новость: http://www.opennet.dev/opennews/art.shtml?num=20393

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Logo (ok) on 20-Фев-09, 23:30 
Шото этот тест мне не понятен. Почему GCC 4.0.2? Чтобы в последнем тесте специально показатель был ниже у GCC.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Logo (ok) on 20-Фев-09, 23:31 
В предпоследнем тесте
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Аноним (??) on 20-Фев-09, 23:59 
>Шото этот тест мне не понятен. Почему GCC 4.0.2? Чтобы в последнем
>тесте специально показатель был ниже у GCC.

В BlastWave репозитории новее нет.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от User294 (ok) on 21-Фев-09, 02:31 
>В BlastWave репозитории новее нет.

А как это относится к производительности GCC?У меня вот в убунте gcc 4.3.2 и меня если честно крайне мало колыхает у кого там чего нет :).У меня то есть.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Free (??) on 21-Фев-09, 00:55 
В Sun Studio по умолчанию очень плохая оптимизация. Код может быть в три-четыре раза медленнее, чем для GCC, Intel, PGI, etc. Всегда необходимо использовать -fast, иначе сравнение бессмысленное. Ну вот такое вот поведение у Sun Studio. Для других компиляторов эффект -fast будет незначительным 10-30%.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Mikk (??) on 21-Фев-09, 10:31 
Если это действительно так, то сам с собой напрашивается вопрос, а почему же OpenSolaris собирают без этого флага?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

25. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от horsh (??) on 22-Фев-09, 02:05 
>почему же OpenSolaris собирают без этого флага?

OpenSolaris собирают разные файлы с разными флагами.
Ядро одно дело, стандарный user land - другое, прикладные программы из поставки третье.

-fast - это макрос который раскрывается в набор опций (для вудкреста пример).

-xlibmil -xlibmopt -D__MATHERR_ERRNO_DONTCARE

Это флаги регулирующие поведение функций из math.h/libm.so
Замену на более быстрые функции или оптимизированные последовательности.
Ядро с libm не линкуется - поэтому они ему не нужны.

-fns -nofstore -fsimple=2 -fsingle

это все упрощения плавающей точки. в ядре в основном целочисленный код.

-xarch=ssse3

это выбор архитектуры SSSE3. Очевидно не подходит для сборки билда общего назначения операционной системы (если б это была gentoo - это было бы приемлимо).
Для amd64 использовался флаг -xarch=amd64 (сейчас, наверное, пишут -m64).


-xcache=32/64/8:4096/64/16 -xchip=core2

это заточки под конкретное железо на котором производится компиляция.


-xbuiltin=%all

Этот флаг говорит компилятору заменять известные функции из libc.so и
других стандартных библиотек на оптимизированные последовательности.
Ядро с этими библиотеками, понятное дело, не линкуется - поэтому и тут мимо.


-xdepend=yes

Включить dependence analysis циклов.
Вполне подходит для ядра.
Ну и соответственно по крайней мере в /usr/src/Makefile.master он упоминается.


-xregs=frameptr

Это аналог omit-frame-pointer из gcc. Использование регистра BP как регистра общего назначения, а не в качестве указателя кадра стека.
Солярис - система в которой очень ценят наблюдаемость - "observability".
Поэтому этот флаг не используется.
Более того на amd64 используется -Wu,-save_args флаг который говорит компилятору складывать аргументы функций которые по соглашениям о вызовах едут на регистрах
в специально отведенное место на стеке.

-xO5

При сборках соляриса используется -xO3.
По сути -xO4 добавляет агрессивный инлайнинг,
а -xO5 может сильно раздуть результирующий код, но не принести реального выирыша.
Инлайнинг в ядре штука мешающая отладке, наблюдаемости и анализу post mortem.
И раздутый код тоже ни к чему. Поэтому, ЕМНИП, используется -xO3.

-xalias_level=basic

это обещание компилятору что указатели базовые типы (int*, float*) указывают именно на те
типы на которые написано. Производительность разные подфлаги -xalias_level могут
поднять очень существенно. Но нужно очень внимательно следить за тем что написано в вашем коде. Этот флаг советует компилятору более буквально следовать семантике
записаной в стандарте языка, что часто не соответствует ожиданиям программиста.
Поэтому во избежание.

Тем не менее все эти опции так или иначе используются для сборки стандартного user land'а
и прочих программ.
-fast задокументирован как отправная точка настройки вашей программы, некоторый общий знаменатель для получения хорошей производительности.
Стартуя от нее можно заниматься профилировкой и что-то добавлять, а что-то убирать.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от auk on 21-Фев-09, 06:11 
>> Так PHP был собран из исходных текстов при помощи Sun Studio за 20 сек., а при помощи GCC за 34 секунды.

тут ничего не напутано?
мне бы такую железку на работу
проекты уровня PHP собирабтся за секунды

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от sndev email on 21-Фев-09, 09:10 
+1, как-то сборка пхп пакета за 30 секунд звучит несколько стремно
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Mox on 21-Фев-09, 10:16 
Что значит проекты? они собирали сам PHP, а не проекты, написанные на PHP
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

16. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Аноним (??) on 21-Фев-09, 12:44 
у меня за 41 секунду собирается и я бы не сказал что железо какое-то мега: 2*E5410
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Аноним (??) on 21-Фев-09, 11:34 
На самом деле SunCC под Linux очень и очень не плох, позволяет добиться сильно лучшей оптимизации кода в сравнении с GCC 4.3.3. В есть даже такая фича, как профилирование после сборки с записью инфы о работе программы, о горячих и холодных участках кода и сборка компиляция программы уже на основе этой статистике. В GCC такого нету
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от pazke email on 21-Фев-09, 12:23 
>На самом деле SunCC под Linux очень и очень не плох, позволяет
>добиться сильно лучшей оптимизации кода в сравнении с GCC 4.3.3. В
>есть даже такая фича, как профилирование после сборки с записью инфы
>о работе программы, о горячих и холодных участках кода и сборка
>компиляция программы уже на основе этой статистике. В GCC такого нету

-fprofile-generate
-fprofile-use

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

18. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Аноним (??) on 21-Фев-09, 13:25 
>-fprofile-generate
>-fprofile-use

Зато у версии 4.3.x GCC регрессия в 30% на 64 битном коде

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

20. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от User294 (ok) on 21-Фев-09, 17:14 
>Зато у версии 4.3.x GCC регрессия в 30% на 64 битном коде

Пруфлинк?Или методы бенчмарка?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

21. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Аноним (??) on 21-Фев-09, 17:29 
http://www.mail-archive.com/gcc@gcc.gnu.org/msg24423.html
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

23. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от pazke email on 21-Фев-09, 18:27 
>http://www.mail-archive.com/gcc@gcc.gnu.org/msg24423.html

Там вообще-то о фортране речь идет.
Не факт, что код на C затронут этой проблемой.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

24. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от User294 (ok) on 21-Фев-09, 22:19 
>http://www.mail-archive.com/gcc@gcc.gnu.org/msg24423.html

Дык там про какую-то байду на фортране?!Мне фортран неинтересен.Вообще.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

22. "Сравнение производительности Sun Studio 12, GCC 3.4 и GCC 4...."  
Сообщение от Аноним (??) on 21-Фев-09, 17:55 
Я вообще не понимаю, как можно смотреть на результаты тестов, в которых не указаны команды сборки.
Если они просто CC=cc CXX=CC ./configure && make
то даже смотреть не на что... Из всего, что приходилось собирать под Солярис, только openSll и nginx установили хоть какие-то флаги отптимизации для sunStudio. Причем только nginx сделал все совсем правильно (Спасибо Игорю Сысоеву). А firebird так например вообще упорно добавлял команды оптимизации gcc. гнушные проекты не считают должным знать о других компиляторах...
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




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

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