Задача в общем виде*
* — данное вступление, для удобства читателей, повторяется в начале каждой статьи этой серии
Наши постоянные читатели, быть может, помнят серию статей, которая выходила в 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-таблицу с подробными результатами всех тестов.
Также некоторым, быть может, покажется неожиданной последовательность поднимаемых в различных сериях вопросов: очевидно, что логическому осмыслению она не поддаётся. :) Здесь вам придётся просто простить нам некую хаотичность в последовательности выхода серий: она обуславливается простым «рабочим моментом» — серии будут выходить в той последовательности, в которой будут становиться доступны рассматриваемые в них результаты. К сожалению, обширность нашей методики тестирования обуславливает один её неизбежный недостаток: тесты идут очень долго. Соответственно, мы решили пожертвовать красотой ради оперативности, и, надеемся, вы нас поймёте. К тому же формат сериала, который условно можно обозначить как «одна статья — один ответ на конкретный вопрос», — вполне располагает к такому подходу: ведь нет «важных» и «неважных» вопросов, каждый из них по-своему интересен, и каждый наверняка найдёт своего читателя.
Что ж, приступим. В этой серии мы рассмотрим, казалось бы, достаточно частный случай (к тому же, в том числе по финансовым соображениям, многим совершенно неинтересный) — однако именно поэтому мы и сочли логичным выделить его в отдельную серию. Итак, сегодня мы рассмотрим вопрос увеличения производительности при переходе с 4 ядер на 6. Разумеется, как всегда, «в чистом виде», т.е. при сохранении одинакового объёма всех кэшей и частоты работы ядра — чтобы на быстродействие влияло только увеличение количества ядер. Соответственно, в нашем тестировании примут участие процессоры AMD Phenom II X4 945 и AMD Phenom II X6 1055T, принудительно переключённые на частоту ядра 2,6 ГГц.
3D-визуализация
4 cores | 6 cores | %% | |
3ds max | 103 | 103 | 0% |
---|---|---|---|
Lightwave | 101 | 102 | 1% |
Maya | 108 | 99 | −8% |
UGS NX 6 | 100 | 83 | −17% |
Pro/ENGINEER | 100 | 96 | −4% |
SolidWorks | 100 | 101 | 1% |
Group Score | 102 | 97 | −5% |
Достаточно «жёсткая» реакция: практически все приложения отреагировали на появление ещё двух дополнительных ядер негативно, уменьшив производительность. Впрочем, для нас это не в диковинку — мы и ранее наблюдали такие случаи, хотя и не часто. Руководствуясь банальным здравым смыслом, вполне допустимо предположить, что чем больше будет ядер — тем вероятнее возникновение в том числе таких коллизий. Однако в данном случае необходимо помнить ещё вот о чём: у нас не просто много ядер, а 6 — то есть их количество не кратно ни одной целой степени двойки. Мы однажды уже наблюдали артефакты, связаные с трёхъядерностью, поэтому логично предположить, что и с 6-ядерностью могут возникнуть проблемы аналогичного плана. А если оба эффекта ещё и накладываются друг на друга...
Рендеринг трёхмерных сцен
4 cores | 6 cores | %% | |
3ds max | 101 | 115 | 14% |
---|---|---|---|
Lightwave | 100 | 145 | 45% |
Maya | 100 | 143 | 43% |
Group Score | 100 | 134 | 34% |
Вполне ожидаемый результат, разве что немного разочаровывает рендер-движок в 3ds max (мы используем V-Ray) — он явно не в состоянии полностью утилизировать мощь 6-ядерного процессора. В остальных случаях результат близок к идеалу (идеальный прирост, как нетрудно посчитать, разделив 6 на 4, составляет 50%). Это, безусловно, радует: мы уже нашли хотя бы один класс приложений, относительно которого 6-ядерный процессор является, безусловно, стоящим приобретением.
Научные и инженерные расчёты
4 cores | 6 cores | %% | |
Maya | 102 | 93 | −9% |
---|---|---|---|
UGS NX 6 | 100 | 92 | −8% |
Pro/ENGINEER | 100 | 99 | −1% |
SolidWorks | 100 | 95 | −5% |
MAPLE | 98 | 98 | 0% |
Mathematica | 103 | 124 | 20% |
MATLAB | 100 | 110 | 10% |
Group Score | 100 | 102 | 2% |
И снова практически все приложения, не имеющие, серьёзной многопоточной оптимизации, отреагировали на переход с 4 ядер на 6 падением производительности, и, с другой стороны, даже неплохо многопоточно-оптимизированные Mathematica и MATLAB демонстрируют нам прирост, весьма далёкий от идеального.
Растровая графика
4 cores | 6 cores | %% | |
ACDSee | 100 | 112 | 12% |
---|---|---|---|
Corel PaintShop | 100 | 95 | −5% |
Corel PhotoImpact | 99 | 98 | −1% |
Adobe Photoshop | 99 | 110 | 11% |
Group Score | 100 | 104 | 4% |
Как ни странно, считающийся хорошо оптимизированным Adobe Photoshop и считающийся достаточно поверхностно оптимизированным ACDSee, получили от 6 ядер пракически одинаковый прирост. Ну а традиционно «однопроцессорные» продукты Corel опять-таки традиционно на 6-ти ядрах притормозили. Видим мы такую ситуацию уже 3-й раз, поэтому удивления уже не испытываем.
Сжатие данных
4 cores | 6 cores | %% | |
7-zip | 105 | 133 | 27% |
---|---|---|---|
RAR | 105 | 108 | 3% |
Unpack (RAR) | 105 | 103 | −2% |
Group Score | 105 | 115 | 10% |
Более-менее задействовать 6 ядер умеет только 7-Zip. И снова мы наблюдаем уже не раз отмеченое ранее явление: типично однопотоковая задача на 6-ядерном процессоре демонстрирует худший результат, чем на 4-ядерном. Вряд ли все программисты из самых разных компаний, сговорившись, сделали одну и ту же ошибку, поэтому основных подозреваемых осталось двое: ОС и «железо». Ну или ПО на стыке одного и другого — драйверы.
Компиляция
4 cores | 6 cores | %% | |
Group Score | 101 | 130 | 29% |
---|
Результат нельзя назвать «превосходным» — но он хотя бы достаточно ощутим, и не отрицательный. :) Впрочем, напомним то, о чём мы не говорили уже давно (вдруг кто-то забыл): проект, который мы используем, был специальным образом подготовлен к тому, чтобы при его компиляции могло задействоваться несколько ядер. Исходный проект, например, в том виде, в котором он раздаётся на сайте разработчика, подобных оптимизаций не имел. Поэтому не стоит обольщаться: если вы хотите получить высокую скорость компиляции на многоядерной системе, для этого придётся приложить дополнительные усилия ещё на этапе компоновки проекта.
Java
4 cores | 6 cores | %% | |
Group Score | 99 | 134 | 35% |
---|
Ещё один пример бенчмарка, традиционно положительно относившегося к увеличению количества ядер. Не подвёл он нас и сегодня, хотя до идеальных 50% осталось целых 15 т.е. кривая производительности не бесконечно уходит вверх, а всё-таки постепенно выпрямляется...
Браузеры
4 cores | 6 cores | %% | |
Flashbench | 100 | 100 | 0% |
---|---|---|---|
Google v8 | 101 | 95 | −6% |
Sun Spider | 101 | 100 | −1% |
Group Score | 101 | 98 | −3% |
Движки JavaScript во всех браузерах, похоже, однопоточные (по крайней мере если не оптимизировать соответствующим образом сами скрипты), поэтому результат нам, уже умудрённым опытом предыдущих тестов, известен заранее: либо ноль, либо хуже. В данном случае — хуже. Правда, в среднем по группе довольно незначительно (да и в любом случае, нам трудно представить, чтобы система с 6-ядерным процессором «просела» на JavaScript) — пусть даже скорость у неё окажется чуть меньше, чем у 4-ядерной.
Кодирование аудио
4 cores | 6 cores | %% | |
Apple Lossless | 101 | 133 | 32% |
---|---|---|---|
FLAC | 101 | 134 | 33% |
Monkey’s Audio | 101 | 134 | 33% |
MP3 (LAME) | 100 | 136 | 36% |
Nero AAC | 100 | 139 | 39% |
Ogg Vorbis | 102 | 134 | 31% |
Group Score | 101 | 135 | 34% |
В зависимости от кодека, прирост составляет от 31% до 39%, и в целом это достаточно высокий показатель. Почему не «идеальные» 50%? Видимо, при 6-ти одновременно выполняющихся потоках, ограничителем для быстродействия становится что-то другое. Вполне возможно даже, что дисковая подсистема — почему бы нет?
Кодирование видео
4 cores | 6 cores | %% | |
DivX | 101 | 108 | 7% |
---|---|---|---|
Mainconcept (VC-1) | 101 | 121 | 20% |
Adobe Premiere | 99 | 145 | 46% |
Sony Vegas | 105 | 131 | 25% |
x264 | 100 | 146 | 46% |
XviD | 101 | 115 | 14% |
Group Score | 101 | 128 | 27% |
Более чем скромны результаты DivX/XviD (неужели сказалось то, что оба этих проекта выросли из одного корня?), также не шибко, прямо скажем, радует Sony Vegas — и это при том, то данное ПО относится к профессиональным инструментам, и с дорогой хорошей техникой должно уметь работать соответственно. Однако на высоте продукт Adobe, на высоте (стабильно и уже очень давно x264), поэтому средний балл по группе наглядно нам демонстрирует, что для кодирования видео 6-ядерный процессор вполне применим, и отдача от него будет.
Воспроизведение видео
4 cores | 6 cores | %% | |
DXVA/H.264 | 101 | 147 | 46% |
---|---|---|---|
DXVA/VC-1 | 108 | 129 | 19% |
Software/H.264 | 100 | 147 | 47% |
Software/VC-1 | 100 | 152 | 52% |
Group Score | 102 | 144 | 41% |
Цифры «пользы», вроде бы, высокие — но по факту толку от этого немного: с декодированием видео, даже полностью программным, вполне успешно справляются двухъядерные процессоры среднего уровня, поэтому не всё ли равно, сколько ядер будет при этом процессе простаивать — одно, два, или четыре?
Виртуальная машина
4 cores | 6 cores | %% | |
Ubuntu Linux | 101 | 120 | 19% |
---|---|---|---|
Windows XP | 101 | 107 | 6% |
Group Score | 101 | 114 | 13% |
Виртуализация накладывает дополнительные ограничения, поэтому было бы странно ждать результатов в райне идеалистических 50% даже от такого хорошего бенчмарка, как встроенный измеритель производительности архиватора 7-Zip — однако результаты Linux по сравнению с Windows XP всё равно поражают: что-то не то у Windows XP с планировщиком. Впрочем, для систем, на которых активно запускаются виртуальные машины, многояденые конфигурации хороши ещё одной особенностью: можно, например, выделить несколько ядер виртуальной машине — но несколько ещё и оставить в эксклюзивное пользование основной ОС. Тогда даже при предельной загрузке «виртуалок», основная ОС не будет впадать в ступор от недостатка процессорных ресурсов.
Игры
4 cores | 6 cores | %% | |
Batman | 102 | 102 | 0% |
---|---|---|---|
Borderlands | 102 | 103 | 1% |
Dirt2 | 100 | 68 | −32% |
Far Cry 2 | 100 | 100 | 0% |
Fritz Chess | 100 | 145 | 45% |
GTA IV | 104 | 109 | 5% |
Resident Evil 5 | 102 | 104 | 2% |
S.T.A.L.K.E.R. «Pripyat» | 100 | 100 | 0% |
UT3 | 105 | 96 | −9% |
Crysis: Warhead | 102 | 100 | −2% |
World in Conflict | 102 | 102 | 0% |
Group Score | 102 | 103 | 1% |
Шестиядерный процессор можно рекомендовать тем, кто любит играть в шахматы, категорически не стоит советовать поклонникам игры Colin McRae: DiRT 2... да и всем остальным, кроме шахматистов, такой процессор тоже, в общем-то, не нужен. Просто потому, что ничего существенного не даёт.
Общий балл
4 cores | 6 cores | %% | |
Group Score | 101 | 118 | 17% |
---|
Средний прирост, на самом деле, вовсе не такой уж плохой. Тревожит другое: чем больше ядер — тем чаще встречаются ситуации, когда увеличение их количества сказывается на производительности отрицательно. Конечно, как правило, это весьма скромное падение скорости, которое без специальных измерений никто и не заметит, к тому же мы опять имеем дело с количеством ядер, не кратным степени двойки, а мы уже давно выяснили, что некоторое ПО на такие вещи реагирует странно — однако сама тенденция всё-таки прослеживается вполне чётко, и не может не тревожить. Программисты явно не поспевают за конструкторами процессоров, и если развитие CPU и дальше будет идти такими же темпами, то разрыв может увеличиться ещё больше. Что же касается рекомендаций, то они очевидны: рендеринг, компиляция и java (если вам всерьёз не хватает скорости в этих областях), кодирование видео и аудио — вот для чего может быть нужен 6-ядерный процессор. Для всех остальных применений имеет смысл ограничиться меньшим количеством ядер — тем более, что самые многоядерные процессоры в линейке любого производителя, как правило, не являются самыми высокочастотными, а частота ядра — намного более универсальный способ повышения производительности, чем увеличение количества ядер.
Процессоры AMD Phenom II X4 и X6 предоставлены компанией |