Про "оптимизирующий" компилятор Интел

VVLLive

Надеюсь, не боян:
http://habrahabr.ru/blogs/hardware/80050/
Вкратце:
К сожалению, программы, скомпилированные с помощью компилятора или библиотек Intel, работают значительно хуже на процессорах AMD и VIA. Причина в том, что для программного кода компилятор (или библиотека) может выдать несколько версий машинного кода, каждая из которых оптимизирована для определённого процессора и набора инструкций, например, SSE2, SSE3, и т.д. Система включает в себя функцию, которая определяет, на каком типе процессора она запущена и выбирает самую подходящую версию. Эта функция называется диспетчером процессора. Диспетчер процессора Intel проверяет не только набор инструкций, поддерживаемый процессором, но также идентификатор производителя процессора. Если идентификатор — строка «GenuineIntel», то выбирается наиболее оптимальный вариант кода. Но если процессор не от Intel, то в большинстве случаев будет выбран самый медленный из возможных вариантов, даже если процессор полностью совместим с лучшей версией.
Ну и т.д.
Интересно, что на Интел, вроде, собираются серьезно наехать по данному поводу. Будем надеяться, что в будущих версиях бенчмарков и реальных приложений не будет дискриминации не-интеловских процессоров.
Вообще, давно подозревал что-то в этом духе, глядя на то, как в бенчмарках процессоры интел выглядят слишком уж хорошо, что не соотносится с производительностью в других приложениях. Ну и еще интересно, с помощью чего компилили MS Office2007 и фотошоп - уж больно они Интел любят. И не пора ли их перекомпилить по-человечески...

geja_03

Недавно только мерял интеловский компилер на amd на спеках\npb. Опции -O3 -ipo -xW. По сравненинию с gcc результаты вполне себе коррелируют с аналогичными замерами на ксеонах.

procenkotanya

-xW
эта опция отключает динамическую проверку процессора, так что логично (т.е. есть железная гарантия, что есть некий набор расширений, так что и проверять тип/флаги процессора нет необходимости)
проблема в том, что без -x опций, например с -axW, была бы пресловутая проверка на GenuineIntel

geja_03

Ну так было бы из чего проблему раздувать ;)
Оставить комментарий
Имя или ник:
Комментарий: