Russian Qt Forum

Компиляторы и платформы => Компиляторы => Тема начата: xokc от Сентябрь 17, 2011, 21:13



Название: Деградирование компилятора Intel C++
Отправлено: xokc от Сентябрь 17, 2011, 21:13
На днях осознал странную вещь - приложение на основе libsamplerate, скомпилированное с использованием Intel C++ Compiler 12 стало работать на 30% медленнее, чем оно же, собраннное ICC 9  c теми же опциями. Решил поисследовать и получил, что с каждой новой версией ICC (10, 11, 12) приложение становилось медленнее примерно 10%. Кроме того, MSVC 2010 отстаёт всего на 2% от ICC 9, тогда как MSVC 2008 проигрывал в своё время процентов 15. Что бы это могло значить?


Название: Re: Деградирование компилятора Intel C++
Отправлено: Igors от Сентябрь 18, 2011, 09:00
"Медленнее" что? Просто некое приложение или приложение с интенсивным openMP (поэтому я использую icc для одного проекта). И на какой платформе?


Название: Re: Деградирование компилятора Intel C++
Отправлено: xokc от Сентябрь 18, 2011, 09:39
Платформа Win7 x64, приложение и dll - x32. Приложение тестовое (ресемплит достаточно большой wav файл с 48 kHz до 7,2 kHz) -просто обёртка над dll libsamplerate, собранной с помощью ICC. OpenMP не использовал, где именно внутри dll стало медленнее - пристально не разбирался, просто захотелось оценить эффективность новых компиляторов. И вот оценил - стало на 30% менее эффективно.


Название: Re: Деградирование компилятора Intel C++
Отправлено: BRE от Сентябрь 18, 2011, 09:46
2 xokc А процессор на целевой машине какой AMD или Intel?


Название: Re: Деградирование компилятора Intel C++
Отправлено: xokc от Сентябрь 18, 2011, 10:14
Ну Intel, конечно :). Если точнее, то Core 2 Duo. В понедельник на Core i7 посмотрю.


Название: Re: Деградирование компилятора Intel C++
Отправлено: BRE от Сентябрь 18, 2011, 10:20
Ну Intel, конечно :). Если точнее, то Core 2 Duo. В понедельник на Core i7 посмотрю.
Тогда есть такое предположение... с интеловскими компиляторами дел никогда не имел....
При сборке указывается модель целевого процессора?
Возможно каждая новая версия компилятора принимает в качестве модели по умолчанию все более новые процессоры и соответственно пытается оптимизировать код под них, а на младших моделях процессоров это приводит к тормозам.


Название: Re: Деградирование компилятора Intel C++
Отправлено: xokc от Сентябрь 18, 2011, 10:36
При сборке указывается модель целевого процессора?
Конечном итоге - нет. В процессе исследований пробовал различные типы процессоров подставлять, но значимых изменений в производительности результирующего кода не заметил, поэтому от компиляции род конкретный тип процессора отказался.


Название: Re: Деградирование компилятора Intel C++
Отправлено: BRE от Сентябрь 18, 2011, 10:42
Конечном итоге - нет. В процессе исследований пробовал различные типы процессоров подставлять, но значимых изменений в производительности результирующего кода не заметил, поэтому от компиляции род конкретный тип процессора отказался.
Попробуй указать одну модель процессора при компиляции каждой из версий и сравнить их.


Название: Re: Деградирование компилятора Intel C++
Отправлено: xokc от Сентябрь 18, 2011, 11:16
А в чём смысл-то таких сравнений? Я же говорил, что принудительная установка типа целевого процессора статистически значимых изменений производительности не даёт. Кроме того, мне необходимо, чтобы код был быстрым на любых современных Intel CPU.


Название: Re: Деградирование компилятора Intel C++
Отправлено: Igors от Сентябрь 18, 2011, 11:26
Вопрос конечно интересный, но не лучше ли задать его на форуме Intel?

(В случае чего скажете что сравнивали trial - ну это если спросят  :))


Название: Re: Деградирование компилятора Intel C++
Отправлено: xokc от Сентябрь 18, 2011, 11:31
Вопрос конечно интересный, но не лучше ли задать его на форуме Intel?
У них есть адекватный рускоязычный форум? В плане английского я немой - читаю легко, с письмом - напряг.

(В случае чего скажете что сравнивали trial - ну это если спросят  :))
Боюсь на 9 версию ICC срок trial вышел ещё пару лет назад.


Название: Re: Деградирование компилятора Intel C++
Отправлено: BRE от Сентябрь 18, 2011, 11:34
А в чём смысл-то таких сравнений? Я же говорил, что принудительная установка типа целевого процессора статистически значимых изменений производительности не даёт. Кроме того, мне необходимо, чтобы код был быстрым на любых современных Intel CPU.
Ну как бэ пытаемся разобраться...
Если один и тот же код собранный для одной и той-же модели процессора разными версиями компилятора даст разный результат, то тут будет повод задуматься и обратиться за комментариями на тот же форум Интела.

(В случае чего скажете что сравнивали trial - ну это если спросят  :))
Вроде раньше его можно было скачать свободно с их сайта, или это специальная версия какая была.


Название: Re: Деградирование компилятора Intel C++
Отправлено: xokc от Сентябрь 18, 2011, 12:00
Если один и тот же код собранный для одной и той-же модели процессора разными версиями компилятора даст разный результат...
Ну это бы уже совсем клиника была бы. Попробую, если руки дойдут.


Название: Re: Деградирование компилятора Intel C++
Отправлено: Igors от Сентябрь 18, 2011, 12:09
Боюсь на 9 версию ICC срок trial вышел ещё пару лет назад.
Ну так что, у Вас не остался старый билд?

У них есть адекватный рускоязычный форум? В плане английского я немой - читаю легко, с письмом - напряг.
Русскоязычный есть, но там "пустовато". Поэтому

Цитировать
Hi All

I'm using "libsamplerate" library. When I rebuild it with every new Intel compiler's version the lib performance is degrading like 10%. So now with icc 12 the lib works about 30% slower comparing to old icc 9 build. What am I doing wromg? Are there some compiler's option I should check?

Thanks
Hox
Назовите как нибудь напр "Building libsamplerate with icc (performance problem)" - не надо говорить компилятор плохой и.т.п.


Название: Re: Деградирование компилятора Intel C++
Отправлено: xokc от Сентябрь 18, 2011, 12:33
запостил: hччp://software.intel.com/en-us/forums/showthread.php?t=86271
Но там с активностью тоже не очень.


Название: Re: Деградирование компилятора Intel C++
Отправлено: kind_shubin от Март 12, 2012, 19:06
надо не только указать модель процессора но и поддерживаемый набор инструкций. SSE *.* хотя по опыту использования все зависит от кода. есть библиотеки которые после компилирования интеловским компилятором реально становились медленее (по сравнению с MS VS 2008)... где в таком случае искать грабли не известно...


Название: Re: Деградирование компилятора Intel C++
Отправлено: Igors от Март 12, 2012, 19:40
надо не только указать модель процессора но и поддерживаемый набор инструкций. SSE *.* хотя по опыту использования все зависит от кода. есть библиотеки которые после компилирования интеловским компилятором реально становились медленее (по сравнению с MS VS 2008)... где в таком случае искать грабли не известно...
Прошу меня правильно понять - Ваш пост могут читать люди которые никогда не пользовались icc, и у них может сложиться впечатление что это кал. По личному опыту могу сказать что "в общем и целом" icc заметно впереди gcc, хотя заморочек с интеграцией хватает. А если копнуть multi-threading, то gcc проигрывает с разгромным счетом (Аргентина-Ямайка 12:0)


Название: Re: Деградирование компилятора Intel C++
Отправлено: BRE от Март 12, 2012, 19:51
Прошу меня правильно понять - Ваш пост могут читать люди которые никогда не пользовались icc, и у них может сложиться впечатление что это кал. По личному опыту могу сказать что "в общем и целом" icc заметно впереди gcc, хотя заморочек с интеграцией хватает. А если копнуть multi-threading, то gcc проигрывает с разгромным счетом (Аргентина-Ямайка 12:0)
Прошу меня правильно понять - Ваш пост могут читать люди которые никогда не пользовались gcc, и у них может сложиться впечатление что это кал. Бла-бла-бла... А если копнуть multi-threading, то бла-бла (Аргентина-Ямайка 12:0).

Где тесты, где цифры? :)


Название: Re: Деградирование компилятора Intel C++
Отправлено: Igors от Март 12, 2012, 20:00
BRE чего завелись-то? :)  Используете icc - обсудим (если будете вести себя прилично), а нет - так о чем речь?  И много ли здесь кто никогда не работал с gcc? Думается что нет


Название: Re: Деградирование компилятора Intel C++
Отправлено: BRE от Март 12, 2012, 20:06
Используете icc - обсудим (если будете вести себя прилично)
А что обсуждать, я не пользуюсь. Под мой Phenom он компилирует хуже чем gcc (почему-то :) )

Судя по нашим постам (kind_shubin. твоему и моему), мы просто собрались почесать языками и обменяться своими субъективными мнениями. Так что я не завелся, а высказал свое мнение, так же как и ты. ;)


Название: Re: Деградирование компилятора Intel C++
Отправлено: Igors от Март 12, 2012, 20:37
мы просто собрались почесать языками и обменяться своими субъективными мнениями.
В этом нет ничего плохого, если (как и все) оно в меру. Далеко не всегда мне нужен icc, но для интенсивных расчетов - да. "Просто" прирост 15-20% - ну не то чтобы уж офигеть, но приятно. А вот если "разпоточить" - то намного больше, если операции (кластеры) не так уж велики. Реализация omp намного лучше, гибче, больше директив. Покажите мне нормальный/профессиональный атомарный лок на gcc - мне такой неизвестен. На intel - наливай и пей. Какая-то либа стала тормозить с очередной версией? Вполне возможно, спрашивайте производителей, это их проблемы. А вот так охаять "потому что мне не дали эту цацку" - ума много не надо  :)


Название: Re: Деградирование компилятора Intel C++
Отправлено: xokc от Март 14, 2012, 23:42
Какая-то либа стала тормозить с очередной версией? Вполне возможно, спрашивайте производителей, это их проблемы. 
Кого спрашивать-то? Интел или авторов библиотеки?