Линейка процессоров AMD 2010 года:исследуем подробности Часть 1. Что лучше: 2 ядра и большой L2 или 3 ядра и маленький?


Задача в общем виде

Наши постоянные читатели, быть может, помнят серию статей, которая выходила в 2009 году под общим заголовком «Влияние различных характеристик на быстродействие процессоров современных архитектур». В ней мы рассматривали некоторое количество сферических процессоров в вакууме, чтобы на основе анализа их быстродействия составить общее впечатление о скорости процессоров реальных и факторах, на неё влияющих. В новом году, после выхода следующей версии методики, мы решили творчески переработать опробованный ранее метод с уклоном в большую реалистичность исследуемых вопросов, то есть моделируя ситуации по возможности реальные. Как и в прошлый раз, начать мы решили с продукции компании AMD, а именно — с самой новой её платформы: Socket AM3. Благо, производитель обещает этой платформе достаточно долгую жизнь, популярность её в пользовательской среде велика, да и название себе компания подобрала более удачное, чем конкурент — с точки зрения сортировки по алфавиту. :)

Нынешняя линейка AMD на первый взгляд кажется несколько хаотичной (мы бы сказали, что и на все последующие тоже…), однако логику производителя понять можно: разумеется, гораздо приятнее бракованный процессор продать, чем выбросить. А т. к. модификаций с различными объёмами и типами кэшей и количеством ядер эта компания выпускает достаточно много, соответственно, есть большой соблазн придумать для экземпляра с «бракованным» ядром или кэшем какое-то название, ядро или часть кэша отключить, а процессор всё-таки продать. :) Благодаря этой замечательной, новаторской политике AMD, в линейке производимых ею AM3-процессоров наблюдается аж три разновидности двухъядерных — с разными объёмами L2-кэша, и даже с наличием L3; две модификации трёхъядерных — с L3 и без него; и снова три модификации четырёхъядерных — с L3 и без него, а также с различными объёмами L3. Кроме того, выпускается для платформы AM3 ещё и одноядерный Sempron. Сведя в одну небольшую таблицу основные технические характеристики CPU для платформы AM3, мы наконец-таки имеем шанс понять, что определённого рода логика в модельном ряде AMD есть:

 SempronAthlon II X2Phenom II X2Athlon II X3Phenom II X3Athlon II X4Phenom II X4Phenom II X6
ядер12233446
кэш L2, КБ10242×512/10242×5123×5123×5124×5124×5126×512
кэш L3, КБ614461444096/61446144

Итак, мы наблюдаем достаточно логичное «путешествие» от 1 ядра к 6, сопровождающееся вариациями на тему объёма L2-кэша, а также наличия или отсутствия L3 и его объёма. При этом объёмом L2 AMD «играется» на относительно слабых процессорах (двухъядерных), а далее в качестве универсального «убыстрятеля всего» используется введение L3. Также можно отметить два одинаково странно смотрящихся процессора: Phenom II X2, который при всего 2 ядрах имеет гигантский L3-кэш, и, наоборот, Athlon II X4 — который при 4 ядрах лишён оного совсем. По идее, первый должен являться идеальным вариантом для старого ПО без многопоточной оптимизации (хотя тогда ему и второе-то ядро не очень нужно…), а второй — процессором для оптимистов, надеющихся на то, что 4-ядерный CPU победит все процессоры с меньшим количеством ядер, невзирая на парусник объём кэша. Так оно будет или не так — посмотрим на результаты…

Соответственно, вырисовываются наиболее интересные сопоставления с точки зрения анализа производительности:

  1. Увеличение количества ядер при одинаковом объёме кэша:
    1. от 1 ядра к 2;
    2. от 2 ядер к 3;
    3. от 3 ядер к 4;
    4. от 4 ядер к 6.
  2. Увеличение количества кэша при одинаковом количестве ядер:
    1. на 2-ядерных процессорах (разные размеры L2, добавление L3);
    2. на 3-ядерных процессорах (добавление L3);
    3. на 4-ядерных процессорах (добавление L3, разные размеры L3).
  3. Вариации на тему «меньше ядер, но больше кэш*»:
    1. 1-ядерный процессор в сравнении с 2-ядерным;
    2. 2-ядерный процессор в сравнении с 3-ядерным.

* — подразумевается: на одиночное ядро.

Как видите, почвы для исследований — поле непаханое. Правда, для того чтобы мы могли зафиксировать своё внимание именно на влиянии вышеперечисленных факторов, убрав все мешающие, нам понадобилось всё-таки сделать один реверанс в сторону «синтетичности» — независимо от того, существует ли такая модель CPU в реальности, все участники тестов работали на одной частоте ядра: 2,6 ГГц. Впрочем, не так уж всё и плохо: Athlon II X3/X4, Phenom II X3/X4 с такой частотой действительно существуют, не бывает только 2600-мегагерцевых Sempron, Athlon/Phenom II X2 и Phenom II X6.

Тестирование

Как и было сказано выше, тестирование проводилось в соответствии с новейшей методикой 2010 года, с некоторыми незначительными модификациями:

  1. Поскольку задача перед нами стояла достаточно масштабная и интересная, а все участники тестов вели себя весьма пристойно, и необъяснимых с точки зрения логики странностей практически не демонстрировали, нами было принято волюнтаристское решение все опциональные тесты объявить постоянными — таким образом, они присутствуют в основном разделе, и участвуют на общих основаниях в среднем балле.
  2. Поскольку некоторое количество рассмотренных процессоров являются, так сказать «виртуальными», и в реальности не производятся, для данного цикла, для удобства сравнения, был выбран свой собственный эталонный (100-балльный) процессор из числа принимавших участие именно в этой серии тестов: AMD Phenom II X4 810.

Традиционно, мы даём ссылку на XLS-таблицу с подробными результатами всех тестов.

Также некоторым, быть может, покажется неожиданной первая тема, которую мы решили исследовать: очевидно, что в списке вопросов она находится отнюдь не на первом месте, с какого конца ни посмотри. Здесь вам придётся просто простить нам некую хаотичность в последовательности выхода серий: она обуславливается простым «рабочим моментом» — серии будут выходить в той последовательности, в которой будут становиться доступны рассматриваемые в них результаты. К сожалению, обширность нашей методики тестирования обуславливает один её неизбежный недостаток: тесты идут очень долго. Соответственно, если бы мы решили пожертвовать оперативностью ради красоты, первую серию (по логике, начинать следовало бы со сравнений с участием Sempron), вам пришлось бы ждать ещё примерно месяц, в то время как эта готова уже сейчас. Мы решили, наоборот, пожертвовать красотой ради оперативности, и, надеемся, вы нас поймёте. К тому же формат нынешнего тестирования: «одна статья — один ответ на конкретный вопрос», — вполне располагает к такому подходу: ведь нет «важных» и «неважных» вопросов, каждый из них по-своему интересен, и каждый наверняка найдёт своего читателя.

Итак, приступим. В этой серии мы рассмотрим, как и было обещано, один простой и конкретный вопрос: имеет ли 3-ядерный процессор, в котором на каждое ядро приходится по 512 килобайт L2-кэша, преимущество над двухъядерным CPU, в котором на каждое ядро приходится в 2 раза больше L2-кэша — 1024 килобайта? В плюсах у первого — дополнительное ядро. С другой стороны, каждое ядро второго может работать с удвоенным объёмом кэшированных данных. Ситуация, между прочим, вовсе не такая очевидная, как может показаться на первый взгляд…

3D-визуализация

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
3ds max
7992
16%
Lightwave
9491
−3%
Maya
9490
−4%
UGS NX 6
9895
−3%
Pro/ENGINEER
9590
−5%
SolidWorks
9894
−4%
Group Score9291
−1%

Да-да, к вопросу о неочевидности ситуации. Поразительно, но при визуализации трёхмерной картинки, только один пакет из шести смог получить какую-то пользу от дополнительного ядра, а вот 5 остальных на уменьшение объёма L2 отреагировали весьма критически. Разумеется, понятно, с чем это связано: скорее всего, они просто не смогли задействовать третье ядро, и оно простаивало. Что ж — похвалим разработчиков 3ds max за хорошую оптимизацию, но заодно констатируем: они пока в явном меньшинстве.

Рендеринг трёхмерных сцен

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
3ds max
6383
32%
Lightwave
5174
45%
Maya
4871
48%
Group Score5476
41%

В этой группе прирост производительности от добавления ещё одного ядра близок к идеальному, но относительно рендеринга данный факт не вызывает никакого удивления: 512 килобайт L2-кэша ядрам вполне хватает, т.к. сцена разбивается на достаточно мелкие параллельно обсчитываемые кусочки.

Научные и инженерные расчёты

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
Maya
8995
7%
UGS NX 6
9693
−3%
Pro/ENGINEER
9491
−3%
SolidWorks
9287
−5%
MAPLE
9894
−4%
Mathematica
6573
12%
MATLAB
7484
14%
Group Score8788
1%

Ситуация более сложная: инженерные CAD, судя по всему, оперируют достаточно большими объёмами информации при подсчёте, а вот задействовать третье ядро не умеют (справедливости ради: они и второе зачастую игнорируют…). «Выстрелили» неплохо многопоточно оптимизированные Maya, Mathematica (напомним, что начиная с 2010 года мы используем для этого пакета многопоточно-оптимизированный вариант теста MMA) и MATLAB, за счёт чего общий балл по группе вывел в лидеры 3-ядерный CPU.

Растровая графика

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
ACDSee
10197
−4%
Corel PaintShop
9697
1%
Corel PhotoImpact
9998
−1%
Adobe Photoshop
7386
18%
Group Score9295
3%

Разница в ±1 процент вполне укладывается в погрешность измерений, поэтому нам только остаётся выделить кэшелюбивый ACDSee и хорошо многопоточно оптимизированный Photoshop. И снова за счёт более ощутимого преимущества в хорошо оптимизированном приложении 3-ядерник лидирует в общем балле по группе.

Сжатие данных

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
7-zip
5574
35%
RAR
8383
0%
Unpack (RAR)
9086
−4%
Group Score7681
7%

7-Zip третье ядро задействовать умеет, RAR — очевидно, не умеет, а вот при распаковке (она вообще однопоточная, мы проверяли) объём L2 оказывается достаточно важным параметром. Но всё равно ускорение в 7-Zip больше, чем потери производительности при распаковке. 3-ядерник снова выиграл.

Компиляция

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
Group Score5768
19%

Наш тест компиляции (по крайней мере, так должно быть в теории…) сейчас поддерживает до 16 потоков, поэтому выигрыш процессора с бо́льшим количеством ядер не удивляет.

Java

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
Group Score5574
35%

…Ну а отличную распараллеливаемость теста SPECjvm, мы хорошо знаем ещё по методике 2009 года.

Браузеры

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
Flashbench
9094
4%
Google v8
9397
4%
Sun Spider
9797
0%
Group Score9396
3%

Совсем новая, неизведанная группа тестов, статистики по которой ещё нет, но достаточно банальный результат: два бенчмарка отдали небольшое преимущество третьему ядру, а третий вообще не заметил никакой разницы.

Кодирование аудио

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
Apple Lossless
5067
34%
FLAC
5066
32%
Monkey’s Audio
5067
34%
MP3 (LAME)
5067
34%
Nero AAC
5167
31%
Ogg Vorbis
5067
34%
Group Score5067
34%

Тесты на скорость кодирования аудио начиная с 2009 года получили прекрасную многопоточную оптимизацию за счёт использование пакета dbPoweramp, который умеет запускать на исполнение столько процессов кодирования, сколько он обнаружит в системе процессоров. В этой ситуации выигрыш 3-ядерника был предрешён.

Кодирование видео

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
DivX
7793
21%
Mainconcept (VC-1)
6481
27%
Adobe Premiere
4972
47%
Sony Vegas
5576
38%
x264
5065
30%
XviD
7285
18%
Group Score6179
30%

Пакеты для кодирования видео также демонстрируют очень достойную многопроцессорную оптимизацию, в том числе ранее не использовавшиеся нами Adobe Premiere и Sony Vegas. Причём, заметьте: у двух вышеназванных пакетов она одна из лучших в группе.

Воспроизведение видео

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
DXVA/H.264
5070
40%
DXVA/VC-1
10449
−53%
Software/H.264
5375
42%
Software/VC-1
4872
50%
Group Score6467
5%

Новая группа тестов преподнесла один из немногочисленных сюрпризов, резко негативно отреагировав на 3-ядерник. Забегая вперёд, отметим: похоже, речь идёт именно о реакции на 3 ядра, а не на уменьшение объёма L2, т. к. 4-ядерник настолько большого падения производительности не демонстрирует. Возможно, имеет место феномен категорического «непереваривания» конкретным ПО количества ядер, отличного от степени двойки, мы ранее с таким уже сталкивались.

Виртуальная машина

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
Ubuntu Linux
7169
−3%
Windows XP
7575
0%
Group Score7372
−1%

И ещё одна неожиданность: VirtualBox, оказывается, любит большой L2-кэш. По-другому объяснить феномен результатов в данной группе не получается: используемый для тестов под виртуальной машиной архиватор 7-Zip имеет очень хорошую многопоточную оптимизацию (чему доказательством являются результаты тестирования архиваторов).

Игры

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
Batman
7786
12%
Borderlands
8590
6%
Dirt2
6285
37%
Far Cry 2
6988
28%
Fritz Chess
4872
50%
GTA IV
5172
41%
Resident Evil 5
6586
32%
S.T.A.L.K.E.R. «Pripyat»
9297
5%
UT3
6084
40%
Crysis: Warhead
8490
7%
World in Conflict
6570
8%
Group Score6984
22%

Подавляющее большинство игр вполне удачно задействавали третье ядро, только Borderlands, S.T.A.L.K.E.R., Crysis и World in Conflict не испытывают особого оптимизма (менее 10% прибавки). Не то чтобы тенденция была такая уж чёткая (UT3 ей, например, противоречит), но можно заметить, что 3 игры из перечисленных четырех — не очень-то новые.

Общий балл

 2 ядра + 2×1024 L23 ядра + 3×512 L2%%
Overall Score
7180
13%

Общий балл вполне в духе времени: даже с обрезанным кэшем, многоядерность всё равно в фаворе. Впрочем, не без пикантных подробностей: 16 тестов из 57 предпочли процессор с меньшим количеством ядер, но большим объёмом L2 на ядре. Есть искушение объявить данный факт происками ретроградов и леностью программистов, недостаточно хорошо умеющих задействовать ресурсы современных процессоров… и, наверное, так оно и есть. Всё-таки для нормальной поддержки многоядерности нужно проделать определённую работу (иногда немаленькую), а большой L2 иногда вызывает повышение производительности «сам по себе», без дополнительных усилий программиста. В таком случае, закончить следует на оптимистической ноте: судя по общему баллу, ленивцев среди разработчиков ПО становится всё меньше. Что же касается практических рекомендаций, то они очевидны: в целом, в случае с Athlon II, 3 ядра всё-таки однозначно лучше, чем 2.

Процессоры AMD Athlon II X2/X3 предоставлены компанией
 



19 июля 2010 Г.