SPEC CPU2000. Часть 8. Новые версии теста и компиляторов.


Буквально месяц назад компания Intel представила новые версии своих компиляторов и многих интересует вопрос их относительной производительности. Кроме того мы уже давно собирались перейти с использования устаревшего (конечно скорее морально) компилятора MSVC 6 на новый Visual.NET.

Да и сам тест SPEC CPU2000 (правда еще в конце 2001 года :) сменил номер версии с 1.1 на 1.2. Так что в этом материале мы рассмотрим все эти новшества и заодно подготовимся к работе в 2003 году.

Итак, вспомним, что у нас есть:

  • серия iXBT.060202.*: MSVC 6 SP5 и компиляторы Intel версии 5.
  • серия iXBT.060602.*: MSVC 6 SP5 и компиляторы Intel версии 6.

В каждой серии есть варианты по наборам SIMD: без них, с MMX, с SSE и с SSE2. Каждый процессор обычно тестируется на максимальном для него наборе SIMD. В частности в этой статье все тесты использовали SSE2.

Сегодня мы добавляем к компиляторам Intel Compiler 7.0 (как для C/C++ так и для Fortran). Кроме того вместе с MSVC 6 SP5 попробуем использовать для библиотек (собственно компилятор MSVC не используется) новую версию студии — Microsoft Visual.NET.

Итого по компиляторам у нас получается 6 комбинаций. Все они были протестированы на ПК следующей конфигурации:

  • процессор Intel Pentium 4 2.53 ГГц (FSB 533, L2 512K)
  • материнская плата ASUS P4T533 (i850E)
  • модуль памяти Samsung RDRAM PC4200 512МБ

Выбор остальных компонент для тестов SPEC CPU2000 не важен. Об этом Вы можете узнать здесь.

Система работала под управлением Windows 2000 Pro SP3. Сначала все конфигурации были скомпилированы (с парой переустановок ОС). После этого система еще раз была установлена заново и запускались тесты (напомню, что SPEC CPU2000 не использует никаких системных файлов, так что между отдельными тестами переустанавливать ОС не обязательно).





В целом мы видим некоторый рост результатов при изменении версий в большую сторону, но он все-таки незначителен:

Прирост при переходе с MSVC6 SP5 на MS Visial.NET,%
 CINT2000CFP2000
ic50,730,10
ic60,840,60
ic70,520,00


Относительная производительность компиляторов Intel,%
CINT2000msvc6ms.net
ic5100,00100,00
ic699,90100,00
ic7100,42100,21
CFP2000msvc6ms.net
ic5100,00100,00
ic6102,13102,63
ic7103,95103,85

Отметим, что мы привели интегральные показатели. Если посмотреть на результаты отдельных тестов, то можно увидеть и большую разницу. В частности переход на Visual.NET дает в двух подтестах CINT2000 рост порядка 5%, а в CFP2000/183.equake рост составляет более 13%. В то же время для CFP2000/188.ammp наоборот наблюдается снижение результата почти на 7%.

Что касается изменения версии самого теста с 1.1 на 1.2, то это выражается в поддержке нескольких новых операционных систем и поправках в исходных текстах тестов для улучшения совместимости с различными компиляторами. Когда мы работали над этой статьей, у нас были некоторые проблемы с компиляцией тестов под Linux, которые разрешились после изучения новых версии тестов. Таким образом это сравнение носит формальный характер (конфигурация iXBT.060602.sse2.cfg).

SPEC CPU20001.11.2
164.gzip928926
175.vpr615614
176.gcc11591157
181.mcf763763
186.crafty10061004
197.parser922925
252.eon10971096
253.perlbmk11631176
254.gap12361232
255.vortex15481548
256.bzip2780779
300.twolf684680
SPECint_base2000960959
SPEC CPU20001.11.2
168.wupwise12761278
171.swim18121811
172.mgrid964964
173.applu10781078
177.mesa989985
178.galgel14771477
179.art742742
183.equake10991099
187.facerec12321230
188.ammp668668
189.lucas14071407
191.fma3d976976
200.sixtrack470469
301.apsi758758
SPECfp_base200010101010

Заключение

Итак, можно сказать, что мы получили два интересных результата.

Во первых новые компиляторы дают небольшой рост интегральных оценок. Так что если вам важен каждый процент (или даже полпроцента :) производительности, то безусловно стоит попробовать седьмую версию компиляторов от Intel в паре со средой Microsoft Visual.NET. Отметим, что на одном конкретном приложении рост может составлять 5 и более процентов. Примеры есть :)

С другой стороны разница настолько мала, что мы вполне можем использовать в будущем только новые компиляторы и сравнивать результаты с данными, полученными в прошлом году на старых конфигурациях. То же самое относится и к версии теста SPEC CPU2000.




6 февраля 2003 Г.

SPEC CPU2000: 8. .

SPEC CPU2000. 8. .

Intel . ( ) MSVC 6 Visual.NET.

SPEC CPU2000 ( 2001 :) 1.1 1.2. 2003 .

, , :

  • iXBT.060202.*: MSVC 6 SP5 Intel 5.
  • iXBT.060602.*: MSVC 6 SP5 Intel 6.

SIMD: , MMX, SSE SSE2. SIMD. SSE2.

Intel Compiler 7.0 ( C/C++ Fortran). MSVC 6 SP5 ( MSVC ) — Microsoft Visual.NET.

6 . :

  • Intel Pentium 4 2.53 (FSB 533, L2 512K)
  • ASUS P4T533 (i850E)
  • Samsung RDRAM PC4200 512

SPEC CPU2000 . .

Windows 2000 Pro SP3. ( ). (, SPEC CPU2000 , ).





, - :

MSVC6 SP5 MS Visial.NET,%
  CINT2000 CFP2000
ic5 0,73 0,10
ic6 0,84 0,60
ic7 0,52 0,00


Intel,%
CINT2000 msvc6 ms.net
ic5 100,00 100,00
ic6 99,90 100,00
ic7 100,42 100,21
CFP2000 msvc6 ms.net
ic5 100,00 100,00
ic6 102,13 102,63
ic7 103,95 103,85

, . , . Visual.NET CINT2000 5%, CFP2000/183.equake 13%. CFP2000/188.ammp 7%.

1.1 1.2, . , Linux, . ( iXBT.060602.sse2.cfg).

SPEC CPU2000 1.1 1.2
164.gzip 928 926
175.vpr 615 614
176.gcc 1159 1157
181.mcf 763 763
186.crafty 1006 1004
197.parser 922 925
252.eon 1097 1096
253.perlbmk 1163 1176
254.gap 1236 1232
255.vortex 1548 1548
256.bzip2 780 779
300.twolf 684 680
SPECint_base2000 960 959
SPEC CPU2000 1.1 1.2
168.wupwise 1276 1278
171.swim 1812 1811
172.mgrid 964 964
173.applu 1078 1078
177.mesa 989 985
178.galgel 1477 1477
179.art 742 742
183.equake 1099 1099
187.facerec 1232 1230
188.ammp 668 668
189.lucas 1407 1407
191.fma3d 976 976
200.sixtrack 470 469
301.apsi 758 758
SPECfp_base2000 1010 1010

, , .

. ( :) , Intel Microsoft Visual.NET. , 5 . :)

, , . SPEC CPU2000.