Максимальная скорость выполнения с компилятором Intel на VS 10 (C ++) - PullRequest
0 голосов
/ 25 января 2012

Я пытаюсь оптимизировать мой код, чтобы сделать его максимально быстрым во время выполнения.Я сравнил VS с Intel, переключив несколько вариантов оптимизации, но я не заметил заметной разницы.Однако, поскольку мой процессор - Intel, он должен быть быстрее.Какие переключатели оптимизации вы предлагаете, чтобы максимизировать скорость?

Ответы [ 3 ]

5 голосов
/ 25 января 2012

Компиляторы имеют немного другую направленность.

Microsoft традиционно ориентируется на базы кода, такие как ОС Windows и SQL Server (неожиданно). Этот код содержит много кода целочисленного типа и не много тяжелых циклов. Их компилятор создает хороший код для таких приложений.

Корпорация Intel уделяет больше внимания приложениям, требующим большого объема вычислений, с большим количеством вычислений с плавающей запятой и кода, которые могут выиграть от агрессивного развертывания циклов.

Как и вы, я заметил, что мой код, хорошо настроенный для компилятора MS, не выигрывает от перекомпиляции с компилятором Intel.

2 голосов
/ 25 января 2012

Однако, поскольку мой процессор Intel, он должен быть быстрее

Нет - спецификации процессора Intel, микрокоды и руководства по программированию доступны для всех разработчиков компиляторов. У Intel особого преимущества нет

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

редактирование:
Прошло 10 лет с тех пор, как я работал в HPC, но тогда компиляторы Intel и PCG опередили все остальное, GCC был довольно хорош, а MSVC ужасен. С тех пор Intel больше не является компилятором по умолчанию для вашей окончательной сборки продукта, GCC, как правило, применяет передовые технологии полного выбора программ, но компилятор MSFT продвинулся до неузнаваемости. Одна из причин заключается в том, что MSFT теперь использует собственный компилятор для внутренних сборок.

0 голосов
/ 25 января 2012

Было бы трудно дать универсальный ответ на этот вопрос. Если, однако, вы можете выполнить разумную работу по тестированию реальных сценариев, тогда может помочь оптимизация по профилю . Может предоставить обратную связь для конкретных тестовых прогонов.

...