[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: gcc?



On Fri, 13 Jun 2003, Yury Yurevich wrote:

> Доброго времени суток!
> Было дело, что 12 Июн 2003 в 12:07
> Yuri Nefedov писал(а):
>
> > По своему опыту работы с "научными программами" могу сказать,
> >   что опции компилятора вообще, а опции относящиеся к процессору
> >   в особенности, ничего не меняют (+/- 5% не в счет).
>
> Могу поспорить, поскольку для P4 для win-компилятора (vc6 vs. icc)
> включение оптимизации дает прирост в 2-5 раз (!!), а для AthlonXP: ~1.5
> раза. В vc6 оптимизация под pentium и под скорость. Для IntelC
> последовательно включались SSE1/2 (для атлона, соответственно, только
> SSE1).
>
> Хотелось попробовать, какие скорости будет показывать gcc ;)) Может ли
> включение флагов MMX/SSE/3DNow (AFAIK, появилились в gcc-3.2) на lin
> аналогично увеличить скорость?
>
> И вопрос: если я поставлю оптимизацию под атлон (march, mcpu, 3dnow,
> etc), то значит ли это, что откомпиленная прога не запуститься на p4?
> Кстати, и есть ли разница в скорости выполнения проги при компиляции
> share/static?
>
> P.S. Мерялось не на бенчмарках, а на "живых" приложениях ( а) Расчет
> инерционных и фрикционных коэффициентов для уравнений Ланжевена в
> трехмерной модели; б) расчет функционалов потенциальной энергии в модели
> жидкой капли с диффузным краем в трехмерном случае [расчет небольшого
> количества точек, ~2% от 396526]) ; влияние дисковой подсистемы
> нивелировалось (измерения шли не со времени запуска программы, а со
> времени подгрузки всех данных с винта); измерения производились
> секундомером.
>
> P.P.S. Не малую роль играет фортран; за неимением intel fortran compiler
> ;)) измерения не проводились. А правда, что g77 имеет такие же флаги
> оптимизации, как и g++?
>
> --
> Best regards, Yury Yurevich
>
>

  Доброе утро, Yuri.

 Ну возможно я и "несколько преувеличил" :).

 Однако, надо помнить, что использование SSE1 и 3Dnow
 ускоряет только single-precision операции, (давненько
 мне такие программы не попадались).
 У 3Dnow есть еще неприятная особенность, что
 оно не придерживается стандартов IEEE для чисел
 с плавающей точкой. Как я помню, например, при делении
 на ноль не будет nan образовываться. То есть пользоваться
 конечно можно, но в 100% работающих программах.

 SSE2 - несколько лучше, но имеется оно только у P4,
 у которого FPU довольно слабый, мягко говоря.
 Честно говоря сам на них никогда не работал, не знаю.

 Очень руки чешутся попробовать athlon64, как там с fp
 дела обстоят.

 С переносимостью проблема. Как я понимаю,
 собрав с 3Dnow на P4 уже не запустишь, и т.д.

 Для g77 я обычно ставлю
 -O -funroll-loops -mcpu=i686 -malign-double
 Какие-то опции общие с g++, какие-то нет. В общем info g77

 Успехов,
 Юра.



Reply to: