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.
|