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


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

* — данное вступление, для удобства читателей, повторяется в начале каждой статьи этой серии

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

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

  Sempron Athlon II X2 Phenom II X2 Athlon II X3 Phenom II X3 Athlon II X4 Phenom II X4 Phenom II X6
ядер 1 2 2 3 3 4 4 6
кэш L2, КБ 1024 2×512/1024 2×512 3×512 3×512 4×512 4×512 6×512
кэш L3, КБ 6144 6144 4096/6144 6144

Итак, мы наблюдаем достаточно логичное «путешествие» от 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-таблицу с подробными результатами всех тестов.

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

Приступим к практической части. В этой серии мы рассмотрим переход с одного ядра на два в тех двух вариантах, которые предлагает нам компания AMD: с сохранением объёма кэша второго уровня (1024 КБ на ядро) и с его уменьшением (512 КБ на ядро). Что характерно: одноядерных процессоров Sempron с пониженным до 512 КБ объёмом L2, у AMD в ассортименте для платформы Socket AM3 пока просто нет. Таким образом, мы сможем оценить преимущества в производительности двухъядерной платформы Socket AM3 над одноядерной, а также выяснить, настолько ли первой нужен большой L2.

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

Для начала напомним, что проценты прироста производительности, приведенные во всех таблицах, в обоих случаях считаются относительно одноядерного процессора, а красным цветом мы выделяем результаты, с трудом укладывающиеся в привычную нам картину, и достойные отдельного обсуждения.

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
3ds max
79 79 0% 79 0%
Lightwave
91 89 -2% 94 3%
Maya
90 89 -1% 94 4%
UGS NX 6
83 83 0% 98 18%
Pro/ENGINEER
90 90 0% 95 6%
SolidWorks
31 94 203% 98 216%
Group Score 77 87 13% 93 21%

Отрицательные цифры прироста у Lightwave и Maya можно попытаться объяснить тем, что они наблюдаются только у двухъядерного процессора с уменьшенным количеством L2 на ядро (соответственно, если исходить из предположения о том, что процесс визуализации второе ядро практически не затрагивает — всё логично). А можно и не объяснять вовсе — расхождение до 2%, если оно не систематическое, вполне укладывается в погрешность измерений, о чём мы уже неоднократно писали раньше. Существенно интереснее ситуация с SolidWorks — мы неоднократно перепроверяли результаты всех трёх процессоров, и можем с полной уверенностью утверждать: это не ошибка. Действительно, проценты ускорения от перехода с одного ядра на два такие вот «зашкаливающие». Разумеется, мы имеем дело с ошибкой в программе (более точно: с очень неоптимальной реализацией какого-то алгоритма), в результате которой процессор, имеющий менее 2 ядер, оказывается в сильном проигрыше. Сложность в том, что мы даже не знаем точно, кого винить: поскольку мы тестируем скорость визуализации, виноват может быть даже не сам пакет SolidWorks, а какая-нибудь специфическая функция OpenGL, «кривовато» реализованная в драйвере видеокарты. Правда, на этих двух кандидатах, рассуждая логически, список заканчивается.

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

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
3ds max
37 63 70% 63 70%
Lightwave
23 49 113% 51 122%
Maya
25 47 88% 48 92%
Group Score 28 53 89% 54 93%

Сверхлинейный рост скорости рендеринга в Lightwave при переходе с одного ядра на два, мы уже отмечали и раньше. Правда, тогда в том же был замечен и пакет 3ds max. В этот раз, наоборот, 3ds max продемонстрировал весьма скромные показатели прироста (да-да, 68% для рендеринга — это очень скромный показатель!). Возможно, дело в новой версии используемого нами движка V-Ray, а может быть — в сцене для рендеринга, об этом навскидку судить сложно.

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

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
Maya
57 89 56% 89 56%
UGS NX 6
89 89 0% 96 8%
Pro/ENGINEER
87 89 2% 94 8%
SolidWorks
71 85 20% 92 30%
MAPLE
96 96 0% 98 2%
Mathematica
44 63 43% 65 48%
MATLAB
51 73 43% 74 45%
Group Score 71 83 17% 87 23%

Как и раньше, инженерные CAD в табели о рангах параллельной оптимизации плетутся в самом хвосте. Только SolidWorks продемонстрировал более-менее пристойный показатель, но до MATLAB и Maya ему далеко. И уже в третий раз двухъядерник с 1024 КБ L2 демонстрирует весьма скромный отрыв от двухъядерника с 512-килобайтовым.

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

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
ACDSee
87 98 13% 101 16%
Corel PaintShop
88 95 8% 96 9%
Corel PhotoImpact
92 97 5% 99 8%
Adobe Photoshop
49 71 45% 73 49%
Group Score 79 90 14% 92 16%

В этой группе всё традиционно: самая лучшая параллельная оптимизация у Adobe Photoshop, некие намёки на её наличие — у ACDSee, и нечто совсем невнятное — у двух пакетов Corel. Как ни странно, к большому кэшу все 4 пакета оказались в достаточной степени равнодушны.

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

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
7-zip
28 52 86% 55 96%
RAR
64 79 23% 83 30%
Unpack (RAR)
88 88 0% 90 2%
Group Score 60 73 22% 76 27%

Новая версия 7-Zip вкупе с новыми опциями демонстрирует очень хорошую многопоточную оптимизацию. При сохранении объёма L2-кэша (напомним, что у Sempron он равен 1024 КБ), переод на 2 ядра даёт почти идеальное ускорение. А вот уполовинивание кэша ухудшает результат достаточно существенно — на целых 10%. Впрочем, это только у 7-Zip, а у WinRAR всё намного спокойнее и индифферентнее. Что же касается распаковки, то она вообще однопоточная.

Компиляция

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
Group Score 32 51 59% 57 78%

Первый тест, в котором уполовиненный L2-кэш оказался намного хуже.

Java

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
Group Score 28 52 86% 55 96%

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

Браузеры

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
Flashbench
72 87 21% 90 25%
Google v8
94 91 -2% 93 -1%
Sun Spider
102 93 -9% 94 -8%
Group Score 91 91 0% 93 2%

Из серии «и так тоже бывает»: JavaScript-бенчмарки Sun и Google в принципе не любят многоядерность. А вот прирост во Flashbench как бы намекает нам, что некая многопоточная оптимизация во flash-плеере Adobe присутствует…

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

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
Apple Lossless
25 50 100% 50 100%
FLAC
25 49 96% 50 100%
Monkey’s Audio
25 50 100% 50 100%
MP3 (LAME)
26 50 92% 50 92%
Nero AAC
25 49 96% 51 104%
Ogg Vorbis
26 50 92% 50 92%
Group Score 25 50 100% 50 100%

Идеальный показатель, но оно и понятно: dBpoweramp запускает столько потоков кодирования, сколько найдёт процессоров. Чувствительности к кэшу практически никакой — видимо, объём одновременно обрабатываемых данных довольно небольшой.

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

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
DivX
56 75 34% 77 38%
Mainconcept (VC-1)
38 63 66% 64 68%
Adobe Premiere
24 48 100% 49 104%
Sony Vegas
29 53 83% 55 90%
x264
27 50 85% 50 85%
XviD
43 72 67% 72 67%
Group Score 36 60 67% 61 69%

Наилучшая многопоточная оптимизация у Adobe Premiere, наихудшая, как ни странно — у DivX (почему странно? да потому, что очень распространённый продукт, к тому же коммерческий: могли бы уж озадачиться…) Большой L2 на двухъядернике не то что бы не даёт никакого эффекта, но выдающимся преимущество в 5% тоже назвать нельзя.

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

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
DXVA/H.264
38 47 24% 50 32%
DXVA/VC-1
33 96 191% 104 215%
Software/H.264
34 52 53% 53 56%
Software/VC-1
24 45 88% 48 100%
Group Score 32 60 88% 64 100%

А вот и третий артефакт: теперь сверхлинейный рост при переходе на 2 ядра продемонстрировал тест на проигрывание видео, закодированного в формат VC-1 с задействованием функций аппаратного ускорения видеокарты. Напомним, в чём суть данной группы тестов: замеряется средняя загрузка процессора во время воспроизведения видеоролика. Таким образом, как только мы переходим с двухъядерного процессора на одноядерный — нагрузка невероятным образом растёт. И снова нельзя определить точно, кто виноват: проигрывающее ПО (Media Player Classic Home Cinema), или драйверы видеокарты (ведь используется её аппаратное ускорение).

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

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
Ubuntu Linux
49 68 39% 71 45%
Windows XP
51 72 41% 75 47%
Group Score 50 70 40% 73 46%

Как ни странно, большой L2 не сильно сказывается на результатах.

Игры

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
Batman
41 73 78% 77 88%
Borderlands
54 81 50% 85 57%
Dirt2
32 53 66% 62 94%
Far Cry 2
36 64 78% 69 92%
Fritz Chess
25 47 88% 48 92%
GTA IV
13 45 246% 51 292%
Resident Evil 5
46 62 35% 65 41%
S.T.A.L.K.E.R. «Pripyat»
82 92 12% 92 12%
UT3
43 54 26% 60 40%
Crysis: Warhead
43 76 77% 84 95%
World in Conflict
33 56 70% 65 97%
Group Score 41 64 56% 69 68%

А вот и четвёртый артефакт, впрочем, уже знакомый нам по предыдущим тестированиям: Grand Theft Auto IV. Сверхлинейный рост впечатляет: почти 300%! Разумеется, ничем кроме ошибки программистов это объяснить нельзя. В целом же, игры зарекомендовали себя чуть ли не самыми кэшелюбивыми приложениями: двухъядерник с большим L2 выигрывает у своего собрата целых 12%. Так и просится в следующее сравнение Phenom II X2 — у него суммарный объём кэша ещё больше.

Общий балл

  1 ядро 1024 КБ L2 2 ядра 2×512 КБ L2 %% 2 ядра 2×1024 КБ L2 %%
Group Score 50 68 36% 71 42%

Разумеется, мы подозревали ;), что в 2010 году второе ядро будет (нет — просто обязано!) давать достаточно существенное преимущество в скорости выполнения приложений. Вопрос был: насколько существенное. И действительно: 5 лет подряд нас кормят рассказами про то, что «многоядерность это наше всё» — пора бы уже предъявить некий реальный эффект. А двухъядерность — это как раз минимальный вариант той самой многоядерности, меньше уже не придумаешь.

Intel, правда, придумала, но мы сейчас обсуждаем линейку процессоров AMD.

Поэтому наши выводы будет просты, но отнюдь не восторженны: да, конечно, два ядра имеют смысл. 36% — цифра хорошая, большая. 42% — ещё больше, приятно. Правда, по состоянию на момент написания статьи, равночастотный одноядерному Sempron 140 двухъядерный Athlon II X2 215 стоит ровно на 36% больше, т. е. с финансовой точки зрения обладает точно таким же соотношением цены к производительности. Плюс к тому, неожиданно обнаруженные нами отнюдь не единичные программисты-склеротики, забывшие о существовании одноядерных процессоров артефакты производительности (SolidWorks, Lightwave, GTA IV, DXVA/VC-1) свидетельствуют о том, что увеличение разрыва между одноядерными и многоядерными системами может обеспечиваться в том числе дальнейшим распространением среди программистов этой разновидности склероза накоплением подобных артефактов, а вовсе не объективной разницей в скорости.

В общем, всё как всегда: оптимисты могут утешать себя тем, что всё могло быть намного хуже, пессимистам же вполне допустимо горевать о том, что всё отнюдь не так хорошо, как можно было ожидать. Реалисты же (не страдающие склерозом), возможно, вспомнят о том, что в прошлом году у сферического двухъядерного процессора в вакууме прирост производительности относительно одноядерного аналога составил 49% — а значит, вполне возможно, дело не только в количестве ядер, но и в каких-то других характеристиках (мы ещё исследуем этот вопрос чуть позже на примере Phenom II X2). Косвенно данную гипотезу подтверждает двухъядерник с 2×1024 КБ L2-кэша — его средняя производительность на 6% выше, чем у двухъядерника с 2×512 КБ L2. Хотя, честно говоря, от вдвое большего L2 мы почему-то ждали более весомого эффекта.

Ну и напоследок, в качестве справочной информации: средний прирост по группам приложений при переходе с 1 ядра на 2 на платформе AMD Socket AM3.

  %% прироста
3D-визуализация
17%
Рендеринг
91%
Расчёты
20%
Графика
15%
Упаковка
24%
Компиляция
69%
Java
91%
Браузеры
1%
Кодирование аудио
100%
Кодирование видео
68%
Воспроизведение видео
94%
Виртуальная машина
43%
Игры
62%


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



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

ВИКТОРИНА TT

Материнские платы какого форм-фактора можно устанавливать в корпус Thermaltake Versa C22 RGB Snow Edition?

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

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

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