Задача в общем виде
Наши постоянные читатели, быть может, помнят серию статей, которая выходила в 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 ядра к 2;
- от 2 ядер к 3;
- от 3 ядер к 4;
- от 4 ядер к 6.
- Увеличение количества кэша при одинаковом количестве ядер:
- на 2-ядерных процессорах (разные размеры L2, добавление L3);
- на 3-ядерных процессорах (добавление L3);
- на 4-ядерных процессорах (добавление L3, разные размеры L3).
- Вариации на тему «меньше ядер, но больше кэш*»:
- 1-ядерный процессор в сравнении с 2-ядерным;
- 2-ядерный процессор в сравнении с 3-ядерным.
* — подразумевается: на одиночное ядро.
Как видите, почвы для исследований — поле непаханое. Правда, для того чтобы мы могли зафиксировать своё внимание именно на влиянии вышеперечисленных факторов, убрав все мешающие, нам понадобилось всё-таки сделать один реверанс в сторону «синтетичности» — независимо от того, существует ли такая модель CPU в реальности, все участники тестов работали на одной частоте ядра: 2,6 ГГц. Впрочем, не так уж всё и плохо: Athlon II X3/X4, Phenom II X3/X4 с такой частотой действительно существуют, не бывает только 2600-мегагерцевых Sempron, Athlon/Phenom II X2 и Phenom II X6.Тестирование
Как и было сказано выше, тестирование проводилось в соответствии с новейшей методикой 2010 года, с некоторыми незначительными модификациями:
- Поскольку задача перед нами стояла достаточно масштабная и интересная, а все участники тестов вели себя весьма пристойно, и необъяснимых с точки зрения логики странностей практически не демонстрировали, нами было принято волюнтаристское решение все опциональные тесты объявить постоянными — таким образом, они присутствуют в основном разделе, и участвуют на общих основаниях в среднем балле.
- Поскольку некоторое количество рассмотренных процессоров являются, так сказать «виртуальными», и в реальности не производятся, для данного цикла, для удобства сравнения, был выбран свой собственный эталонный (100-балльный) процессор из числа принимавших участие именно в этой серии тестов: AMD Phenom II X4 810.
Традиционно, мы даём ссылку на XLS-таблицу с подробными результатами всех тестов.
Также некоторым, быть может, покажется неожиданной первая тема, которую мы решили исследовать: очевидно, что в списке вопросов она находится отнюдь не на первом месте, с какого конца ни посмотри. Здесь вам придётся просто простить нам некую хаотичность в последовательности выхода серий: она обуславливается простым «рабочим моментом» — серии будут выходить в той последовательности, в которой будут становиться доступны рассматриваемые в них результаты. К сожалению, обширность нашей методики тестирования обуславливает один её неизбежный недостаток: тесты идут очень долго. Соответственно, если бы мы решили пожертвовать оперативностью ради красоты, первую серию (по логике, начинать следовало бы со сравнений с участием Sempron), вам пришлось бы ждать ещё примерно месяц, в то время как эта готова уже сейчас. Мы решили, наоборот, пожертвовать красотой ради оперативности, и, надеемся, вы нас поймёте. К тому же формат нынешнего тестирования: «одна статья — один ответ на конкретный вопрос», — вполне располагает к такому подходу: ведь нет «важных» и «неважных» вопросов, каждый из них по-своему интересен, и каждый наверняка найдёт своего читателя.
Итак, приступим. В этой серии мы рассмотрим, как и было обещано, один простой и конкретный вопрос: имеет ли 3-ядерный процессор, в котором на каждое ядро приходится по 512 килобайт L2-кэша, преимущество над двухъядерным CPU, в котором на каждое ядро приходится в 2 раза больше L2-кэша — 1024 килобайта? В плюсах у первого — дополнительное ядро. С другой стороны, каждое ядро второго может работать с удвоенным объёмом кэшированных данных. Ситуация, между прочим, вовсе не такая очевидная, как может показаться на первый взгляд…
3D-визуализация
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
3ds max | 79 | 92 | 16% |
---|---|---|---|
Lightwave | 94 | 91 | −3% |
Maya | 94 | 90 | −4% |
UGS NX 6 | 98 | 95 | −3% |
Pro/ENGINEER | 95 | 90 | −5% |
SolidWorks | 98 | 94 | −4% |
Group Score | 92 | 91 | −1% |
Да-да, к вопросу о неочевидности ситуации. Поразительно, но при визуализации трёхмерной картинки, только один пакет из шести смог получить какую-то пользу от дополнительного ядра, а вот 5 остальных на уменьшение объёма L2 отреагировали весьма критически. Разумеется, понятно, с чем это связано: скорее всего, они просто не смогли задействовать третье ядро, и оно простаивало. Что ж — похвалим разработчиков 3ds max за хорошую оптимизацию, но заодно констатируем: они пока в явном меньшинстве.
Рендеринг трёхмерных сцен
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
3ds max | 63 | 83 | 32% |
---|---|---|---|
Lightwave | 51 | 74 | 45% |
Maya | 48 | 71 | 48% |
Group Score | 54 | 76 | 41% |
В этой группе прирост производительности от добавления ещё одного ядра близок к идеальному, но относительно рендеринга данный факт не вызывает никакого удивления: 512 килобайт L2-кэша ядрам вполне хватает, т.к. сцена разбивается на достаточно мелкие параллельно обсчитываемые кусочки.
Научные и инженерные расчёты
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
Maya | 89 | 95 | 7% |
---|---|---|---|
UGS NX 6 | 96 | 93 | −3% |
Pro/ENGINEER | 94 | 91 | −3% |
SolidWorks | 92 | 87 | −5% |
MAPLE | 98 | 94 | −4% |
Mathematica | 65 | 73 | 12% |
MATLAB | 74 | 84 | 14% |
Group Score | 87 | 88 | 1% |
Ситуация более сложная: инженерные CAD, судя по всему, оперируют достаточно большими объёмами информации при подсчёте, а вот задействовать третье ядро не умеют (справедливости ради: они и второе зачастую игнорируют…). «Выстрелили» неплохо многопоточно оптимизированные Maya, Mathematica (напомним, что начиная с 2010 года мы используем для этого пакета многопоточно-оптимизированный вариант теста MMA) и MATLAB, за счёт чего общий балл по группе вывел в лидеры 3-ядерный CPU.
Растровая графика
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
ACDSee | 101 | 97 | −4% |
---|---|---|---|
Corel PaintShop | 96 | 97 | 1% |
Corel PhotoImpact | 99 | 98 | −1% |
Adobe Photoshop | 73 | 86 | 18% |
Group Score | 92 | 95 | 3% |
Разница в ±1 процент вполне укладывается в погрешность измерений, поэтому нам только остаётся выделить кэшелюбивый ACDSee и хорошо многопоточно оптимизированный Photoshop. И снова за счёт более ощутимого преимущества в хорошо оптимизированном приложении 3-ядерник лидирует в общем балле по группе.
Сжатие данных
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
7-zip | 55 | 74 | 35% |
---|---|---|---|
RAR | 83 | 83 | 0% |
Unpack (RAR) | 90 | 86 | −4% |
Group Score | 76 | 81 | 7% |
7-Zip третье ядро задействовать умеет, RAR — очевидно, не умеет, а вот при распаковке (она вообще однопоточная, мы проверяли) объём L2 оказывается достаточно важным параметром. Но всё равно ускорение в 7-Zip больше, чем потери производительности при распаковке. 3-ядерник снова выиграл.
Компиляция
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
Group Score | 57 | 68 | 19% |
---|
Наш тест компиляции (по крайней мере, так должно быть в теории…) сейчас поддерживает до 16 потоков, поэтому выигрыш процессора с бо́льшим количеством ядер не удивляет.
Java
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
Group Score | 55 | 74 | 35% |
---|
…Ну а отличную распараллеливаемость теста SPECjvm, мы хорошо знаем ещё по методике 2009 года.
Браузеры
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
Flashbench | 90 | 94 | 4% |
---|---|---|---|
Google v8 | 93 | 97 | 4% |
Sun Spider | 97 | 97 | 0% |
Group Score | 93 | 96 | 3% |
Совсем новая, неизведанная группа тестов, статистики по которой ещё нет, но достаточно банальный результат: два бенчмарка отдали небольшое преимущество третьему ядру, а третий вообще не заметил никакой разницы.
Кодирование аудио
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
Apple Lossless | 50 | 67 | 34% |
---|---|---|---|
FLAC | 50 | 66 | 32% |
Monkey’s Audio | 50 | 67 | 34% |
MP3 (LAME) | 50 | 67 | 34% |
Nero AAC | 51 | 67 | 31% |
Ogg Vorbis | 50 | 67 | 34% |
Group Score | 50 | 67 | 34% |
Тесты на скорость кодирования аудио начиная с 2009 года получили прекрасную многопоточную оптимизацию за счёт использование пакета dbPoweramp, который умеет запускать на исполнение столько процессов кодирования, сколько он обнаружит в системе процессоров. В этой ситуации выигрыш 3-ядерника был предрешён.
Кодирование видео
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
DivX | 77 | 93 | 21% |
---|---|---|---|
Mainconcept (VC-1) | 64 | 81 | 27% |
Adobe Premiere | 49 | 72 | 47% |
Sony Vegas | 55 | 76 | 38% |
x264 | 50 | 65 | 30% |
XviD | 72 | 85 | 18% |
Group Score | 61 | 79 | 30% |
Пакеты для кодирования видео также демонстрируют очень достойную многопроцессорную оптимизацию, в том числе ранее не использовавшиеся нами Adobe Premiere и Sony Vegas. Причём, заметьте: у двух вышеназванных пакетов она одна из лучших в группе.
Воспроизведение видео
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
DXVA/H.264 | 50 | 70 | 40% |
---|---|---|---|
DXVA/VC-1 | 104 | 49 | −53% |
Software/H.264 | 53 | 75 | 42% |
Software/VC-1 | 48 | 72 | 50% |
Group Score | 64 | 67 | 5% |
Новая группа тестов преподнесла один из немногочисленных сюрпризов, резко негативно отреагировав на 3-ядерник. Забегая вперёд, отметим: похоже, речь идёт именно о реакции на 3 ядра, а не на уменьшение объёма L2, т. к. 4-ядерник настолько большого падения производительности не демонстрирует. Возможно, имеет место феномен категорического «непереваривания» конкретным ПО количества ядер, отличного от степени двойки, мы ранее с таким уже сталкивались.
Виртуальная машина
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
Ubuntu Linux | 71 | 69 | −3% |
---|---|---|---|
Windows XP | 75 | 75 | 0% |
Group Score | 73 | 72 | −1% |
И ещё одна неожиданность: VirtualBox, оказывается, любит большой L2-кэш. По-другому объяснить феномен результатов в данной группе не получается: используемый для тестов под виртуальной машиной архиватор 7-Zip имеет очень хорошую многопоточную оптимизацию (чему доказательством являются результаты тестирования архиваторов).
Игры
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
Batman | 77 | 86 | 12% |
---|---|---|---|
Borderlands | 85 | 90 | 6% |
Dirt2 | 62 | 85 | 37% |
Far Cry 2 | 69 | 88 | 28% |
Fritz Chess | 48 | 72 | 50% |
GTA IV | 51 | 72 | 41% |
Resident Evil 5 | 65 | 86 | 32% |
S.T.A.L.K.E.R. «Pripyat» | 92 | 97 | 5% |
UT3 | 60 | 84 | 40% |
Crysis: Warhead | 84 | 90 | 7% |
World in Conflict | 65 | 70 | 8% |
Group Score | 69 | 84 | 22% |
Подавляющее большинство игр вполне удачно задействавали третье ядро, только Borderlands, S.T.A.L.K.E.R., Crysis и World in Conflict не испытывают особого оптимизма (менее 10% прибавки). Не то чтобы тенденция была такая уж чёткая (UT3 ей, например, противоречит), но можно заметить, что 3 игры из перечисленных четырех — не очень-то новые.
Общий балл
2 ядра + 2×1024 L2 | 3 ядра + 3×512 L2 | %% | |
Overall Score | 71 | 80 | 13% |
---|
Общий балл вполне в духе времени: даже с обрезанным кэшем, многоядерность всё равно в фаворе. Впрочем, не без пикантных подробностей: 16 тестов из 57 предпочли процессор с меньшим количеством ядер, но большим объёмом L2 на ядре. Есть искушение объявить данный факт происками ретроградов и леностью программистов, недостаточно хорошо умеющих задействовать ресурсы современных процессоров… и, наверное, так оно и есть. Всё-таки для нормальной поддержки многоядерности нужно проделать определённую работу (иногда немаленькую), а большой L2 иногда вызывает повышение производительности «сам по себе», без дополнительных усилий программиста. В таком случае, закончить следует на оптимистической ноте: судя по общему баллу, ленивцев среди разработчиков ПО становится всё меньше. Что же касается практических рекомендаций, то они очевидны: в целом, в случае с Athlon II, 3 ядра всё-таки однозначно лучше, чем 2.
Процессоры AMD Athlon II X2/X3 предоставлены компанией |