SPEC CPU2000. Часть 25: 65-нм двухъядерные процессоры Intel Pentium Extreme Edition 965 (Presler) и Intel Core Duo T2500 (Yonah)


Процессоры Intel, производимые по нормам нового 65-нм технологического процесса, были представлены в начале 2006 года в виде двухъядерных процессорных ядер Presler (микроархитектура NetBurst) и Yonah (микроархитектура «P6+»). С тех пор были достаточно подробно изучены как микроархитектурные аспекты этих процессорных ядер, так и проведены различные сравнительные тестирования процессоров Pentium D / Pentium Extreme Edition и Core Duo в различных приложениях. В настоящей статье мы изучим поведение этих процессоров (и представляемых ими процессорных ядер) в задачах тестового пакета SPEC CPU2000.

При компиляции задач будем использовать следующие версии компиляторов:

  • Intel(R) C++ Compiler for 32-bit applications, Version 9.0 Build 20050624Z Package ID: W_CC_C_9.0.024
  • Intel(R) Fortran Compiler for 32-bit applications, Version 9.0 Build 20050624Z Package ID: W_FC_C_9.0.024

Во всех случаях (различные варианты оптимизации кода) используем одинаковые общие ключи компиляции кода, отвечающие «двухпроходной» компиляции кода с оптимизацией по профилю приложения (profile-guided optimization, PGO):

PASS1_CFLAGS= -Qipo -O3 -Qprof_gen

PASS2_CFLAGS= -Qipo -O3 -Qprof_use

Процессор Intel Pentium Extreme Edition 965

Для начала, изучим производительность кода задач SPEC CPU2000 в чистом виде, т.е. в абсолютных величинах, при применении всех возможных вариантов оптимизации кода. Для этого используем «обычный» однопоточный вариант запуска тестов (метрику base).

Как и в наших предыдущих исследованиях процессоров с помощью тестов SPEC CPU2000 версии 1.3, в сводной таблице результатов отсутствуют показания для задачи 255.vortex, что связано, как было выявлено впоследствии, с ошибками в наборе входных данных для этой задачи в этой версии тестового пакета. Кроме того, «неоптимизированные» варианты задач 175.vpr и 176.gcc, как и во всех предыдущих исследованиях (включая более раннюю версию SPEC CPU2000 1.2), некорректно завершают свою работу, в связи с чем их рейтинг их производительности в приведенной ниже таблице также отсутствует.

Таблица 1.1. SPECint CPU2000, Pentium Extreme Edition 965, 3.73 ГГц

  Без опт. -QxK -QxW -QxN -QxB -QxP
164.gzip 1146 1257 1265 1267 1267 1259
175.vpr 1224 1319 1309 1284 1302
176.gcc 2133 2118 2141 2117 2144
181.mcf 1923 1931 1928 2478 2473 2483
186.crafty 1227 1256 1368 1373 1363 1365
197.parser 1035 1032 1027 1031 1018 1035
252.eon 1734 1757 2113 2321 2085 2322
253.perlbmk 2053 1994 2001 1996 2017 2037
254.gap 2153 2021 2093 2051 2081 2084
255.vortex
256.bzip2 1482 1437 1418 1398 1395 1433
300.twolf 1494 1836 1847 1864 1826 1871
SPECint_base2000 1536 1580 1634 1684 1660 1692

Таблица 1.2. SPECfp CPU2000, Pentium Extreme Edition 965, 3.73 ГГц

  Без опт. -QxK -QxW -QxN -QxB -QxP
168.wupwise 1667 1654 1955 1885 1685 3229
171.swim 2471 3150 3184 3185 3114 3189
172.mgrid 1053 1277 1602 1736 1368 1736
173.applu 1638 1585 1674 1791 1655 1808
177.mesa 1369 1471 1673 1645 1533 1637
178.galgel 1452 3308 3839 4012 3774 4039
179.art 2783 2933 3238 3293 3122 5070
183.equake 2409 2405 2464 2464 2383 2845
187.facerec 1890 2317 2320 2323 2292 2368
188.ammp 1282 1266 1402 1408 1263 1414
189.lucas 2242 2124 2564 2609 2118 2566
191.fma3d 1424 1420 1773 1821 1465 1776
200.sixtrack 604 600 748 741 621 741
301.apsi 1304 1326 1391 1402 1311 1404
SPECfp_base2000 1575 1751 1969 1998 1800 2163

Как и следовало ожидать, производительность как целочисленных задач, так и задач с вещественными числами в целом (по усредненным оценкам SPECint_base2000 и SPECfp_base2000) плавно возрастает в ряду «код без оптимизации» < -QxK (оптимизация для Pentium III/SSE) < -QxW (оптимизация для ранних Pentium 4 Willamette / SSE2) < -QxN (оптимизация для Pentium 4 Northwood / SSE2) < -QxP (оптимизация для Pentium 4 Prescott / SSE3). Несколько «посередине» находится лишь вариант -QxB (оптимизация для процессоров Pentium M), который в случае целочисленных тестов располагается между -QxW и -QxN, а в случае тестов с вещественными числами — между вариантами -QxK и -QxW. Таким образом, ничего необычного в случае запуска тестов SPEC CPU2000 на ядре Presler не произошло — наилучшим вариантом оптимизации кода оказывается вариант -QxP, «родной» для процессорных ядер Prescott и их последователей, к которым вполне относится и ядро Presler.

Изучим теперь величины, характеризующие производительность задач SPEC CPU2000 на процессоре Pentium Extreme Edition 965 относительно величин, полученных ранее на процессоре Pentium 4 670 (хотя и с более несколько ранними версиями компиляторов). Этот процессор наиболее близок к изучаемому по своим характеристикам (в частности, одинаковому объему L2-кэша в 2 МБ) и тактовой частоте (3.8 ГГц против 3.73 ГГц). Единственное ощутимое различие заключается в использовании более высокой частоты системной шины на платформе с процессором Pentium Extreme Edition 965 (266 МГц против 200 МГц у Pentium 4 670). Таким образом, следует ожидать, что задачи, наиболее чувствительные к пропускной способности памяти, получат дополнительное преимущество на Pentium Extreme Edition 965.

По целочисленным тестам SPEC CPU2000, Presler несколько проигрывает немного более высокочастотному Prescott лишь в задачах 186.crafty (до -2.6%), 252.eon (до -4.3%) и 300.twolf (до -2.8%). В большинстве остальных, независимо от варианта оптимизации кода, как правило, наблюдается незначительное преимущество. Исключение составляет задача 181.mcf, в которой достигается от 16.6 до 20.8% преимущества над ядром Prescott. По-видимому, здесь сказывается та самая увеличенная частота FSB (следовательно, увеличенная ПСП) на платформе Presler. Вместе с тем, эта отдельная задача вносит небольшой вклад в общую оценку производительности SPECint_base2000, поскольку по последней 65-нм ядро выигрывает у своего 90-нм аналога лишь незначительно (до 2.5%).

Среди тестов с вещественными числами, наименее однозначно ведет себя лишь задача 168.wupwise, показывая значительный разброс в относительных величинах скорости в зависимости от варианта оптимизации кода, причем как в положительную, так и в отрицательную стороны — от 10.8 до -20.3%. Остальные задачи ведут себя намного более предсказуемо и либо являются практически нечувствительными к выбору процессора (177.mesa и 200.sixtrack), либо получают ощутимое преимущество на Presler (наибольшее — у 171.swim и 179.art, до 24%). Выигрышным оказывается и общий рейтинг SPECfp_base2000 на процессорном ядре Presler, показывающим до 8.3% преимущества над Prescott, даже несмотря на несколько меньшую тактовую частоту. На этом показателе может сказываться как большая величина ПСП на платформе с процессором Pentium Extreme Edition 965, так и микроархитектурные особенности ядра Presler, вроде наличия аппаратной предвыборки данных на уровне L2-кэша процессора. Также можно предположить, что ядро Presler обладает лучшей производительностью при операциях с вещественными числами (причем как в случае x87-, так и SSE/SSE2/SSE3-кода) по сравнению с равночастотным, и даже несколько более высокочастотным ядром Prescott.

Поскольку процессор Pentium Extreme Edition 965 является двухъядерным, оценим теперь эффективность параллельного запуска нескольких копий задач SPEC CPU2000, используя для этой цели метрику «rate». При этом в качестве эталона будем использовать величины, полученные в этой метрике с количеством копий, равным 1, а в качестве основного измерения — с количеством копий, равным 4 (количеству логических ядер, присутствующих в данном процессоре).

Все целочисленные тесты получают прирост в скорости при использовании второго ядра и технологии Hyper-Threading. Из общей картины выпадает лишь 181.mcf, в которой наблюдается лишь 11-18% прироста. По-видимому, это связано с уже упомянутой выше требовательностью этой задачи к ПСП, поскольку переход к двум ядрам не сопровождается столь же кратным увеличением ПСП (ввиду общей для обоих ядер системной шины). В большинстве остальных задач наблюдается более чем 100% прирост в скорости, свидетельствующий об эффективности не только двухъядерности, но и технологии Hyper-Threading (т.к. теоретически максимальный прирост от использования второго ядра в данном случае составляет 100%). Наиболее отличаются в этом плане задачи 164.gzip и 256.bzip2. По интегральной оценке SPECint_rate2000, прирост в скорости от второго ядра также превышает 100% и составляет 104-108%.

Если рассмотренные выше целочисленные тесты все без исключения отличались приростом в скорости при переходе к «4-поточному» режиму тестирования, то среди задач с вещественными числами есть не только таковые, не демонстрирующие прироста (171.swim в большинстве вариантов), но и проигрывающие в скорости при запуске 4 копий (179.art, показывающая до 47% снижения производительности). Большинство остальных задач показывает значительный прирост в скорости, который в некоторых случаях также оказывается свыше 100% (200.sixtrack и 301.apsi). По интегральной оценке SPECfp_rate2000, «4-поточный» режим «rate» запуска теста на двухъядерном процессоре Pentium Extreme Edition 965 также оказывается выигрышным на 54-72% по сравнению с аналогичным «однопоточным» запуском.

Процессор Intel Core Duo T2500

Аналогично, начнем рассмотрение результатов с абсолютных показателей производительности тестов SPEC CPU2000.

Таблица 2.1. SPECint CPU2000, Core Duo T2500, 2.0 ГГц

  Без опт. -QxK -QxW -QxN -QxB -QxP
164.gzip 1005 1131 1136 1132 1141 1143
175.vpr 1274 1342 1327 1319 1342
176.gcc 1814 1816 1821 1826 1829
181.mcf 1384 1344 1343 1885 1881 1887
186.crafty 1290 1296 1475 1470 1493 1486
197.parser 974 974 961 968 971 968
252.eon 1713 1724 1855 1990 2022 1980
253.perlbmk 1611 1660 1665 1656 1707 1697
254.gap 1677 1558 1651 1650 1664 1663
255.vortex
256.bzip2 1270 1175 1180 1192 1214 1211
300.twolf 1687 2004 2036 2056 2033 2023
SPECint_base2000 1373 1418 1461 1517 1528 1526

Таблица 2.2. SPECfp CPU2000, Core Duo T2500, 2.0 ГГц

  Без опт. -QxK -QxW -QxN -QxB -QxP
168.wupwise 1278 1291 1258 1260 1338 1717
171.swim 1769 1977 1906 1906 1960 1906
172.mgrid 913 1221 1184 1195 1244 1194
173.applu 1035 1054 1004 1205 1196 1205
177.mesa 1217 1534 1605 1575 1558 1612
178.galgel 1723 2656 2651 3016 3086 3018
179.art 2692 2696 2817 2916 2940 2891
183.equake 1602 1589 1595 1589 1599 1700
187.facerec 1418 1691 1689 1683 1697 1645
188.ammp 909 896 886 869 886 896
189.lucas 1568 1477 1641 1676 1687 1672
191.fma3d 1047 1047 1150 1182 1117 1192
200.sixtrack 483 485 503 503 509 504
301.apsi 1058 1078 1052 1040 1064 1046
SPECfp_base2000 1242 1355 1369 1404 1420 1446

Благодаря реализации поддержки инструкций SSE3 в процессорном ядре Yonah оказывается возможным использовать вариант оптимизации кода -QxP, традиционно относящийся к процессорному ядру Prescott, изначально обладающему поддержкой вышеназванных инструкций. По непонятным причинам, подсчет итоговой оценки SPECint_base2000 на процессоре Core Duo T2500 в этом случае «не проходит» (несмотря на то, что в этой серии тестов и в предыдущей серии на Pentium Extreme Edition 965 использовался один и тот же бинарный код), поэтому соответствующая оценка была подсчитана вручную, как среднее геометрическое по результатам всех подтестов. Как видно, вариант -QxP в целочисленных задачах в среднем практически не уступает варианту -QxB, наиболее подходящему для всех предыдущих процессоров класса Pentium M. А в тестах с вещественными числами вариант -QxP и вовсе оказывается выигрышным по сравнению с -QxB и всеми остальными вариантами оптимизации кода. Эффективность последних как в целочисленных, так и вещественных тестах убывает в ряду -QxB > -QxN > -QxW > -QxK > «без оптимизации».

Для рассмотрения полученных результатов в относительных величинах в качестве образца сравнения выберем исследованный ранее процессор Intel Pentium M 770, также обладающий весьма близкими характеристиками с исследуемым процессором (частота ядра — 2.13 ГГц против 2.0 ГГц, объем L2-кэша — 2 МБ, являющийся полным объемом L2 у Pentium M и «эффективным» объемом L2 при использовании лишь одного из ядер процессора Core Duo).

По сравнению с Pentium M, большинство целочисленных задач SPEC CPU2000 либо не получают преимущества, либо несколько проигрывают в скорости на менее высокочастотном процессоре Core Duo. Исключение составляют уже известная по рассмотренному ранее процессору Pentium Extreme Edition 965 задача 181.mcf, получающая до 30.7% преимущества, очевидно, за счет более высокой пропускной способности процессорной шины и памяти на новой платформе, а  также 254.gap (до 33.4% преимущества), не показывающая явного преимущества на Presler и, следовательно, в данном случае получающая прирост не только из-за более высокой ПСП. Тем не менее, общая оценка SPECint_base2000 в относительных величинах вновь является лишь незначительно более выигрышной (до 3.2%) на Core Duo 2.0 ГГц по сравнению с Pentium M 2.13 ГГц.

Значительно лучше выглядит ситуация в задачах с вещественными числами. Незначительный проигрыш, да и то не во всех вариантах оптимизации кода, наблюдается лишь в задачах 168.wupwise, 177.mesa, 188.ammp и 200.sixtrack. Остальные задачи демонстрируют явное преимущество на Core Duo, вплоть до феноменальных величин порядка 153%(!) в задаче 171.swim. Соответственно, интегральная оценка SPECfp_base2000 на Core Duo T2500 также оказывается на 29-36% более выигрышной по сравнению с более высокочастотным Pentium M 770. Таким образом, производительность ядра Yonah в задачах с вещественными числами оказывается заметно выше по сравнению с аналогичным (по тактовой частоте и объему L2-кэша) процессорным ядром Dothan. Аналогичный результат, но не со столь высокими числовыми показателями, наблюдался и выше, при сопоставлении процессорных ядер Presler и Prescott.

Поскольку процессор Core Duo также является двухъядерным, оценим напоследок эффективность параллельного запуска двух копий тестов SPEC CPU2000 в метрике «rate», сопоставив результаты с таковыми для «rate»-запуска одной копии тестов.

В целочисленных задачах «из ряда вон выходящей» вновь является 181.mcf, демонстрирующая в данном случае не только отсутствие прироста, но и некоторое снижение производительности при запуске двух копий. Причину этого явления понять достаточно легко — очевидно, эта задача не только является требовательной к ПСП, но и оперирует сравнительно большими объемами данных, так что больший размер L2-кэша способствует увеличению ее производительности. А поскольку при «двухпоточном» запуске каждое из ядер в первом приближении получает лишь половину общего объема L2-кэша, наблюдается снижение ее производительности. Несмотря на уменьшение объема L2-кэша в пересчете на ядро, все остальные задачи получают ощутимое преимущество при переходе к «двухъядерному» режиму теста. Наименьшее преимущество наблюдается в задаче 300.twolf и составляет 36-45%, наибольшее — в задаче 252.eon и приближается к теоретическому максимуму в 100%. По интегральной оценке SPECint_rate2000, прирост в скорости в двухъядерном режиме в среднем составляет 67-70%.

Задачи с вещественными числами в целом демонстрируют не менее удачную картину. За исключением 179.art, для которой параллельный запуск скорее вредит, чем помогает делу (напомним, то же самое наблюдалось и на процессорном ядре Presler), задачи с вещественными числами показывают неплохой прирост в скорости, в ряде случаев весьма близко приближающийся к теоретическому максимуму. Тем не менее, по интегральной оценке SPECfp_rate2000 выигрыш в целом в этом классе задач оказывается несколько меньшим и составляет 48-53%.

Заключение

Исследованные 65-нм процессорные ядра Presler (на примере процессора Pentium Extreme Edition 965) и Yonah (на примере процессора Core Duo T2500) в целочисленных тестах SPEC CPU2000 показали результат, как минимум немного превосходящий таковой для предыдущих поколений процессорных ядер — Prescott и Dothan, соответственно, при условии равенства объема L2-кэша и некоторой форы по тактовой частоте в пользу 90-нм ядер. В тестах SPEC CPU2000 с вещественными числами процессорное ядро Presler показывает несколько большее по сравнению с целочисленными задачами (до 8% в SPECfp_base2000), а ядро Yonah — и вовсе значительное (до 36% в SPECfp_base2000) преимущество по сравнению с процессорными ядрами Prescott и Dothan, соответственно.

Исследования эффективности параллельного запуска задач в метрике «rate» показали, что большинство тестовых задач SPEC CPU2000, не требовательных к объему L2-кэша и пропускной способности памяти, способны показать ощутимый прирост в производительности при запуске нескольких копий приложения, равных количеству системных процессоров (4 — в случае Pentium Extreme Edition 965, 2 — в случае Core Duo T2500). Вследствие дополнительного использования технологии Hyper-Threading, этот прирост составляет 104-108% для целочисленных задач и 54-72% для задач с вещественными числами на Presler, тогда как абсолютные показатели прироста на ядре Yonah составляют 67-70% в целочисленных задачах и 48-53% в задачах с вещественными числами.




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

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

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

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