URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 23460
[ Назад ]

Исходное сообщение
"OpenNews: FreeBSD переходит на GCC 3.4.6"

Отправлено opennews , 27-Авг-06 23:02 
В качестве предварительного этапа перед переходом FreeBSD на использование GCC 4.1, в FreeBSD-CURRENT будет обновлена (http://groups.google.com/group/muc.lists.freebsd.current/msg...) версия GCC до 3.4.6, затем, через некоторое время, GCC обновится и в  RELENG6.


URL: http://groups.google.com/group/muc.lists.freebsd.current/msg...
Новость: http://www.opennet.me/opennews/art.shtml?num=8227


Содержание

Сообщения в этом обсуждении
"FreeBSD переходит на GCC 3.4.6"
Отправлено DukeArtem , 27-Авг-06 23:02 
Зачем оно надо?

"FreeBSD переходит на GCC 3.4.6"
Отправлено radeon , 28-Авг-06 01:15 
Зачем оно не надо?

"FreeBSD переходит на GCC 3.4.6"
Отправлено XxxX , 28-Авг-06 07:42 
А самому почитать http://gcc.gnu.org/gcc-3.4/changes.html
никак?

"FreeBSD переходит на GCC 3.4.6"
Отправлено Bocha , 28-Авг-06 09:03 
Надо бы уже наверное переходить к четвёрке всё таки, надеюсь не сильно застрянем на 3.4.6 (ну при условии что 4.1 не окажется хуже, но вроде как линуксы уже перешли к этому компилятору)

"FreeBSD переходит на GCC 3.4.6"
Отправлено Dyr , 28-Авг-06 12:28 
В двух словах-то можете обьяснить, чем он лучше?

"FreeBSD переходит на GCC 3.4.6"
Отправлено pavlinux , 28-Авг-06 13:17 
Пример:
Маленькая хрень (программка) с FFT (Fast Fourier Trans. aka Шустрое Преобразование Фурьёвича),
скомпиленая на 3.4.4 работат ~ около 45 сек., на 4.1.1 около 30 сек.

"FreeBSD переходит на GCC 3.4.6"
Отправлено Dyr , 28-Авг-06 13:24 
>Пример:
>Маленькая хрень (программка) с FFT (Fast Fourier Trans. aka Шустрое Преобразование Фурьёвича),
>
>скомпиленая на 3.4.4 работат ~ около 45 сек., на 4.1.1 около 30
>сек.
Что такое FFT знаю, спасибо =)
Интересный результат.
То есть четвёртая ветка на большинстве задач быстрее третьей?

"FreeBSD переходит на GCC 3.4.6"
Отправлено northbear , 28-Авг-06 14:44 
Дык, а причем тут компилятор? Это явно оптимизация библиотеки мат.функций.
Или вы думаете GCC4.x какие-то неведомые для GCC3.4 машинные операции использует?

"FreeBSD переходит на GCC 3.4.6"
Отправлено L.Torvalds , 28-Авг-06 17:09 
А вы конечно думаете что к какой бибке линковаться выбирает компилятор?
Сильно изменили gcc'я от 3 к 4. Аффтары старались - changes писали. Так что дуйте на сайт да и станет вам ясно what & why ....

"FreeBSD переходит на GCC 3.4.6"
Отправлено vvv , 28-Авг-06 19:41 
Бред какой-то. Какая еще оптимизация ручная что ли ?
Компиллер делает всю работу.

"FreeBSD переходит на GCC 3.4.6"
Отправлено northbear , 28-Авг-06 21:32 
Оптимизация именно ручная, господа. Была и будет всегда... А компилятор всего лишь выполняет рутинную часть работы.
Хрестоматийный пример: Статическую функцию или статический параметр функции или константу в С++ можно таковыми не объявлять, на результат исполнения кода в большинстве случаев это не повлияет. Но в следствие этого, целый класс возможностей по оптимизации кода будет не доступен.
Так что, это по-вашему не оптимизация?! Впрочем вы хоть горшком обзовите, только в печь не ставьте... :)))

Люди, знающие тонкости реализации gcc, легко могут представить такую реализацию FFT, что gcc4.1 будет проигрывать даже gcc2.95...
Все же gcc4.1 это лишь инструмент, который в руках грамотного специалиста при прочих равных даст лучший  результат. Но сам по себе никаких сверхвозможностей не несет.

PS. Я потрясен, что сам L.Torvalds удостоил своим вниманием мою скромную реплику. :)))
Позвольте вам выразить свое почтение. :))))


"FreeBSD переходит на GCC 3.4.6"
Отправлено чч , 29-Авг-06 17:44 
Согласен можно написать такой исходник что любой компилятор голову сломает
Но обычно FFT не стандартная и иснодники пишутся или качаются из сети
А товарищ говорил именно о каких то стандартных мат функсиях

"FreeBSD переходит на GCC 3.4.6"
Отправлено northbear , 30-Авг-06 07:48 
О том собственно и речь. Тут скорость зависит от реализации конкретных алгоритмов.
В бытность свою студентом (были же времена) мы изучали Теорию компиляторов и на лабораторных проводили исследования по оптимизации кода. Увеличение скорости работы алгоритма на 5-6 процентов в результате общей оптимизации (т.е. без использования фич зависящих от конкретной аппаратной платформы)считалось просто невероятным прорывом, при условии, что алгоритм реализован оптимально на уровне языка программирования.
Поэтому для меня такие цифры 45 сек. и 30 сек. в отношении одной и той же реализации FFT выглядят умопомрачительными. Либо в GCC 3.4.4 просто отвратительный оптимизатор (а мой опыт говорит, что это не так) либо какая-то совсем экзотическая реализация FFT.
Опять же тут еще зависит от массива входных данных. Если на этом массиве FFT работает двое суток, то 15 сек разницы вполне адекватный результат. :))))

Поэтому я и интересуюсь, откуда дровишки...


"FreeBSD переходит на GCC 3.4.6"
Отправлено vvv , 30-Авг-06 09:46 
Разница в 15 сек за 2 суток не показатель и может быть связана с загруженностью систему
(системные вызовы ну и еже с ними) Но тут то 30% ето обалдеть
Хотя нрен его знает я пробовал компилить программу MD (molec. dynamics)Intel  компиллером
в режиме -fast и без него и разница была 6 и 18 минут. Хотя это не совсем тот пример но
всеже компиллер тоже кое что могет.

"FreeBSD переходит на GCC 3.4.6"
Отправлено northbear , 30-Авг-06 22:57 
Хех... Интеловские компилеры - это вообще песня.
Как-то давно мой однокашник после долгих ковыряний интелового компилера С с профилером поделился открытием, что скорость работы бинарника там может зависеть от того, на системе с каким процем его собирали.
И что бинарник собранный на iP-III отличается от бинарника собранном на iCel. Бинарник собранный под iP-III на Celeron'е сильно тормозит, а наоборот - нет.

"FreeBSD переходит на GCC 3.4.6"
Отправлено northbear , 28-Авг-06 23:07 
>Пример:
>Маленькая хрень (программка) с FFT (Fast Fourier Trans. aka Шустрое Преобразование Фурьёвича),
>
>скомпиленая на 3.4.4 работат ~ около 45 сек., на 4.1.1 около 30
>сек.

Кстати, а откуда эта информация? Ткните носом. Интересно было бы глянуть исходный текст. Что-то уж слишком существенная разница.


"FreeBSD переходит на GCC 3.4.6"
Отправлено antonmx , 29-Авг-06 11:29 
ну у меня не такой большой прирост, но тоже наблюдался при использовании ФФТ из библиотеки FFTW после пересборки оной с gcc4.1

"FreeBSD переходит на GCC 3.4.6"
Отправлено emp , 28-Авг-06 22:38 
косяк вынь...

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


"FreeBSD переходит на GCC 3.4.6"
Отправлено emp , 28-Авг-06 22:41 
это был ответ northbear

"FreeBSD переходит на GCC 3.4.6"
Отправлено northbear , 28-Авг-06 23:09 
>косяк вынь...
>

А что это значит? Переведи на русский.


"FreeBSD переходит на GCC 3.4.6"
Отправлено emp , 29-Авг-06 18:45 
>>косяк вынь...
>>
>
>А что это значит? Переведи на русский.


это значит нестоит курить смешную траву :)


"FreeBSD переходит на GCC 3.4.6"
Отправлено northbear , 30-Авг-06 08:02 
>>>косяк вынь...
>>>
>>
>>А что это значит? Переведи на русский.
>
>
>это значит нестоит курить смешную траву :)

Ясно. Меня смутило слово "вынь". :))
На счет содержательной части сообещния, я тоже имел ввиду компиляцию одного и того же кода разными компиляторами. Подробней в 20-м сообщении здесь.



"FreeBSD переходит на GCC 3.4.6"
Отправлено Аноним , 30-Авг-06 22:33 
На самом деле производительность будет различаться на разных задачах и разном коде.
Вот для примера - кодирование звука на примере lame и flac (и скорость их сборки).
Протестированы:
gcc version 3.4.4 [FreeBSD] 20050518
gcc version 4.0.4 20060824 (prerelease) [FreeBSD]
gcc version 4.1.2 20060825 (prerelease)
gcc version 4.2.0 20060819 (experimental)

Каждый тест проводился 4 раза, взято среднее значение real time. Результаты соответственно 3.4, 4.0, 4.1, 4.2.

Сборка lame:
34,51 38,79 43,05 76,05

Сжатие lame:
39,17 41,65 40,17 40,88

Сборка flac:
85,54 81,50 93,19 160,84

Сжатие flac:
65,55 53,99 56,53 56,58

Я бы особо не спешил с переходом на gcc 4.x.