SPEC CPU2000: Часть 5 — Компиляторы. Дополнение 1


После выхода прошлого материала прошло совсем немного времени, но пока мы проводили это большое количество тестов, фирмы успели выпустить новые версии своих продуктов. И, конечно, встал вопрос о том, чем они отличаются по скорости генерируемого кода.

В этом дополнении будут приведены данные по производительности в SPEC CPU2000 компиляторов:

  • Microsoft Visual C++ Compiler из состава Visual Studio .NET (версия 13.00.9466)
  • Intel C/C++/Fortran Compiler 6.0 (подверсии 139/139/140)

Для сравнения используются версии Microsoft Visual C++ 6.0 SP5 и Intel Compilers 5.0.1. Опции оптимизации компиляторов полностью сохранились, напомню, что для Microsoft это -Ox -G6 а для Intel -Qipo -QxW -O3 (версия с SSE2 для Pentium 4). Полные конфигурационные файлы вы можете посмотреть здесь.

Тесты в этот раз проводились на системе:

  • Intel Pentium 4 1.7GHz
  • Epox 4T2A i850 
  • 256MB PC800 RDRAM
  • Windows 2000 Pro SP2

Как мы помним, Microsoft Visual C++ версии 6 показал очень низкие результаты, так что посмотреть на качество нового компилятора безусловно интересно. Однако в версии 13.00.9466 не появилось поддержки SIMD инструкций, а также новых опций оптимизации (напомним, что тест SPEC CPU2000 использует исключительно компиляторы командной строки). Поэтому сильных изменений мы не ждем.

Резкий скачок в номере версии компиляторов от Intel тоже привлекает внимание. Отметим, что наиболее важным новшеством в них стала поддержка OpenMP технологии, а также возможности автоматической оптимизации для SMP архитектур. Видимо, готовится почва для введения Hyper-Threading на настольные ПК :).

Начнем с тестов CINT2000.

Как мы видим по результатам тестов, компании Microsoft удалось значительно повысить качество генерируемого кода. Прирост производительности в подтестах CINT2000 составляет 25–160%. При этом максимальный эффект виден в тесте 252.eon, который, как вы помните, сильно зависит от скорости центрального процессора. Интегральная оценка получила прибавку в 60%. Но одного из своих конкурентов — компилятор от Intel — он пока не догнал :)

С компиляторами Intel менее очевидная ситуация. В семи подтестах есть рост, а в остальных пяти мы видим небольшое снижение показателей. В то время как интегральная оценка осталась практически на месте — рост составил всего 1,26%. Так что констатируем, что сильно хуже не стало :)

В подтестах набора CFP2000 ситуация аналогичная. Microsoft стал значительно быстрее (на 7–96%). Новый компилятор Intel в двух тестах немного впереди, а в двух других есть снижение.

Снова некоторая нестабильность — 4 подтеста в минусе, 10 в плюсе. Отметим рост более 16% в спорном подтесте 178.galgel, где, как вы помните, Compaq Visual Fortran 6.6 обгонял Intel. Интегральная оценка прибавила 2,9%.

Выводы

Последняя версия компилятора C/C++ компании Microsoft значительно опередила своего предшественника, компилятор шестой версии. Пожалуй, ему уже пора на покой :). Приведенные данные немного скрашивают грустные тона первой статьи. Будем надеяться, что и пользователям других продуктов Microsoft с этого тоже что-то перепадет :)

С другой стороны, Intel, также прибавивший единицу к старшему номеру версии, показывает менее значительные изменения. В общем, это можно объяснить тем, что ориентация на OpenMP и  Hyper-Threading привела к существенному изменению в компиляторах. Так что еще хорошо, что обладателям обычных процессоров сильно хуже от этого не стало :)

Видимо, новые тесты систем в программе SPEC CPU2000 мы будем проводить уже с новым компилятором от Intel.




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.