Углубленное тестирование многоядерных процессоров Skylake-X по методике iXBT Application Benchmark 2018

В прошлом месяце мы опубликовали статью, в которой семь процессоров были протестированы по новой методике iXBT Application Benchmark 2018. Сама статья изначально задумывалась просто как дополнение к анонсу нового тестового пакета iXBT Application Benchmark 2018, задача детального сравнительного тестирования процессоров не ставилась, тем более что процессоры были не новые и все уже были протестированы ранее.

Напомним, что тестировались два процессора семейства Coffee Lake (Core i7-8700K и Core i5-8400) и пять процессоров семейства Skylake-X (Core i7-7820X, Core i9-7900X, Core i9-7940X, Core i9-7960X и Core i9-7980XE). Результаты процессоров Coffee Lake оказались логичными и предсказуемыми, а вот при анализе результатов топовых процессоров семейства Intel Core i9 возник ряд вопросов, что, собственно, и послужило поводом для написания данной статьи. В прошлый раз мы лишь обозначили круг вопросов, на которые предстояло ответить, для чего нужно было провести дополнительное исследование с мониторингом температуры, энергопотребления и тактовой частоты ядер процессора во время проведения теста, а также с использованием различных систем охлаждения.

Что нелогично и зачем все это нужно

Итак, какие именно результаты вызвали вопросы?

Прежде всего: интегральные результаты 14-ядерного процессора Core i9-7940X, 16-ядерного процессора Core i9-7960X и 18-ядерного процессора Core i9-7980XE оказались почти одинаковыми, причем самый высокий интегральный результат продемонстрировал процессор Core i9-7960X, а в некоторых тестах пальма первенства досталась процессору Core i9-7940X. Учитывая, что 18-ядерный процессор Core i9-7980XE является самым дорогим (его розничная стоимость составляет 130-140 тысяч рублей), хотелось бы понять, почему он демонстрирует результат на уровне 14-ядерного процессора Core i9-7940X, розничная стоимость которого составляет примерно 100 тысяч рублей.

Первое, что можно предположить: далеко не всем приложениям нужно такое количество ядер, которое предлагают процессоры Core i9-7940X и выше. То есть не все задачи могут эффективно распараллеливаться более чем на 28 потоков, так что 16- и 18-ядерный процессоры в этом случае не будут иметь преимущества над 14-ядерным.

Вторая возможная причина, которая дополняет первую: чем больше ядер у процессора, тем ниже частота их работы. То есть нужно выбирать, что́ в каждом конкретном случае лучше: большое количество медленных ядер или не очень большое количество более быстрых ядер. Напомним, что для 10-ядерного процессора Core i9-7900X базовая тактовая частота составляет 3,3 ГГц, максимальная тактовая частота в режиме Turbo Boost — 4,3 ГГц, а в режиме Turbo Boost Max 3.0 частота может повышаться до 4,5 ГГц. Для 14-ядерного процессора Core i9-7940X эти показатели составляют 3,1/4,3/4,4 ГГц; для 16-ядерного процессора Core i9-7960X — 2,8/4,2/4,4 ГГц, а для 18-ядерного процессора Core i9-7980XE — 2,6/4,2/4,4 ГГц.

Понятно, что в реальности базовая частота процессора мало о чем говорит. Но, тем не менее, даже если основываться на этих абстрактных характеристиках процессоров, видно, что чем больше ядер, тем ниже тактовая частота. Вообще, реальная частота работы процессора определяется множеством факторов и зависит от температуры ядер, энергопотребления и т. д. И тут возникает третья возможная причина того, что во многих случаях Core i9-7940X оказывается не менее производительным, чем Core i9-7980XE: чем больше в процессоре ядер, тем эффективнее должно быть охлаждение. Первоначально мы предполагали, что процессор Core i9-7980XE попросту не может продемонстрировать свой потенциал по причине недостаточного охлаждения — используемый нами воздушный кулер попросту не способен был адекватно отводить тепло от процессора, в результате чего тактовая частота снижалась. Но это было лишь наше предположение, которое нуждалось в проверке.

Итак, резюмируя, еще раз обозначим, что именно мы хотели проверить.

В реальных тестах многоядерные процессоры Core i9-7940X, Core i9-7960X и Core i9-7980XE демонстрируют примерно одинаковую интегральную производительность, что не совсем логично. В качестве возможных объяснений такого результата рассматриваются две версии. Первая версия заключается в том, что многоядерные процессоры (с числом ядер более 14) требуют использования эффективной системы водяного охлаждения (СВО), а при использовании обычной системы воздушного охлаждения происходит снижение тактовой частоты и, как результат, падение производительности. Вторая версия заключается в том, что большинству пользовательских приложений просто не нужно столько процессорных ядер, то есть приложения не способны распараллеливаться на такое большое количество потоков.

Как проверяем

Для того чтобы проверить наши предположения, мы провели тестирование четырех процессоров (Core i9-7900X, Core i9-7940X, Core i9-7960X и Core i9-7980XE) в различных режимах охлаждения: с одной из самых мощных СВО на рынке Thermaltake Floe Riing 360 и с обычным (но тоже мощным) воздушным кулером Arctic Freezer 33TR, который, если верить паспортным данным, рекомендуется использовать для процессоров с TDP до 200 Вт. В третий раз мы использовали самый обычный воздушный кулер без названия, который представляет собой радиатор башенного типа с тремя тепловыми трубками и 120-миллиметровым вентилятором.

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

Материнская плата Asus TUF X299 Mark I (версия BIOS 1102)
Чипсет Intel X299
Память 16 ГБ DDR3-2400 (четырехканальный режим)
Графическая подсистема MSI GeForce GTX 1070 Gaming X 8G
Накопитель SSD Seagate ST480FN0021 480 ГБ, SATA)
Операционная система Windows 10 Pro (64-битная)

В процессе тестирования с использованием утилиты HWiNFO64 контролировались:

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

Понятно, что подобная работа требует много времени, а также вызывает определенные сложности с наглядным представлением результатов. Однако все оказалось проще, чем представлялось в теории.

Результаты тестирования

Независимость производительности от системы охлаждения

Итак, начнем с главного результата. И при использовании водяной системы охлаждения Thermaltake Floe Riing 360, и при использовании кулера Arctic Freezer 33TR, и при использовании самого простого воздушного кулера результаты тестирования получаются одинаковыми. Ни для одного процессора ни в одном тесте не был зафиксирован троттлинг, достижение критического значения температуры и достижение предельного значения энергопотребления. То есть проблема в данном случае отнюдь не в охлаждении.

Хотя этот вывод уместился всего в один небольшой абзац, нам пришлось потратить очень много времени, чтобы провести все тесты, собрать и проанализировать все данные. Конечно, можно привести конкретные результаты тестирования, противопоставив СВО и воздушный кулер, но в этом просто нет смысла: результаты, повторим, одинаковые. Естественно, температура процессора при использовании CВО немного ниже, чем при использовании воздушного кулера, но поскольку критическое значение температуры не достигается, этот факт никак не отражается на производительности.

Впрочем, разница в температурных показателях все-таки интересна, так что мы приведем ее на диаграммах: для каждого теста приводится усредненное по времени теста значение температуры каждого процессора в случае двух систем охлаждения (СВО Thermaltake Floe Riing 360 и кулера Arctic Freezer 33TR).

Итак, если дело не в эффективности охлаждения, то остается проверить второе наше предположение, которое, напомним, заключается в том, что большинство пользовательских приложений просто не способны распараллеливаться на такое большое количество потоков.

Индекс производительности как квинтэссенция всех прочих результатов

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

Более того, мы введем еще один показатель, который объединит в себе и загрузку процессора, и среднюю тактовую частоту, и число ядер процессора. Этот показатель мы назвали индексом производительности. Казалось бы, зачем нам еще один непонятный результат, если этих результатов и без того очень много? Поясним на конкретном примере. Предположим, что есть два процессора с разным числом ядер, которые работают в конкретном тесте на одинаковой тактовой частоте при одинаковой средней загрузке ядер. Понятно, что в данном случае более высокий результат продемонстрирует процессор, у которого больше ядер. Теперь рассмотрим пример, когда процессор, у которого больше ядер, работает в конкретном тесте на более низкой тактовой частоте и при меньшей средней загрузке ядер, чем процессор, у которого меньше ядер. Сказать, какой из двух процессоров в данном случае продемонстрирует более высокую производительность (скорость выполнения тестовой задачи), нельзя.

Вообще, можно предположить, что скорость выполнения тестовой задачи должна быть пропорциональна количеству ядер процессора (при условии, что задача распараллеливается на все ядра), частоте работы ядер и средней загрузке этих ядер. И если учитывать усредненный по всем ядрам и времени выполнения теста коэффициент загрузки ядер, то не так важно, распараллеливается задача или нет. Скажем, если однопоточная задача, которая полностью (на 100%) грузит одно ядро процессора, выполняется на 10-ядерном процессоре, то усредненный коэффициент загрузки просто будет очень низким (составит 0,1). И если ввести в рассмотрение такой показатель, как произведение числа ядер на среднюю (по времени теста и всем ядрам) тактовую частоту работы и коэффициент загрузки ядер, то такой показатель должен отражать производительность процессора в конкретном тесте. Этот показать мы назвали индексом производительности P. Для его вычисления мы используем тактовую частоту в ГГц, а коэффициент загрузки ядер в долевых частях от 0 до 1.

Фактически, индекс производительности определяет «золотую середину» между числом ядер и тактовой частотой. То есть в каждом конкретном тесте индекс производительности позволяет определить, что лучше: много медленных ядер или мало быстрых. Конечно, индекс производительности нельзя приравнивать к производительности процессора. Он лишь приблизительно отражает производительность и просто позволяет понять, почему процессоры с бо́льшим числом ядер могут демонстрировать производительность ниже, чем процессоры с меньшим числом ядер.

Ну а теперь перейдем к конкретике.

Видеоконвертирование

Итак, начнем с трех тестов видеоконвертирования. В тесте на основе приложении MediaCoder наиболее высокую скорость демонстрирует 18-ядерный процессор Core i9-7980XE, хотя его преимущество над 14-ядерным процессором Core i9-7940X и 16-ядерным процессором Core i9-7960X незначительно.

В тесте на основе приложении HandBrake процессоры Core i9-7940X, Core i9-7960X и Core i9-7980XE демонстрируют практически одинаковые результаты.

А в тесте на основе приложении VidCoder почти одинаковые результаты демонстрируют все четыре процессора.

Если сравнить индексы производительности процессоров в конкретных тестах, то они неплохо коррелируют с полученными результатами и наглядно демонстрируют, что в трех данных тестах 14-, 16- и 18-ядерные процессоры должны обеспечивать примерно одинаковый результат, а в тесте на основе приложения VidCoder все четыре процессора должны обеспечивать примерно одинаковый результат с незначительном преимуществом процессора Core i9-7900X (хотя на практике в данном тесте небольшое преимущество получает процессор Core i9-7940X).

И тот факт, что в данных тестах 18-ядерный и 16-ядерный процессоры не имеют преимущества над 14-ядерным процессором, является следствием того, что с ростом числа ядер уменьшается тактовая частота их работы и, одновременно, уменьшается загрузка ядер процессора (не нужно этим тестам такого количества ядер).

Рендеринг

В группу «Рендеринг» входят четыре теста. В тестах на основе приложений POV-Ray и LuxRender наиболее высокую скорость демонстрирует 18-ядерный процессор Core i9-7980XE.

А вот в тестах на основе приложений Blender и Adobe Photoshop лидером по скорости уже оказывается процессор Core i9-7940X.

Индекс производительности в данном случае хорошо коррелирует с полученными результатами.

Более высокое значение индекса производительности для процессора Core i9-7980XE в тестах на основе приложений POV-Ray и LuxRender объясняется тем, что загрузка всех ядер остается очень высокой даже у процессоров с максимальным количеством ядер, несмотря на уменьшение тактовой частоты в их случае.

А вот в тестах на основе приложений Blender и Adobe Photoshop загрузка ядер в варианте 18-ядерного процессора Core i9-7980XE оказывается самой низкой. Как следствие, оптимальными в данных тестах получаются процессоры Core i9-7940X и Core i9-7960X.

Создание видеоконтента

В группу «Создание видеоконтента» входят пять тестов. В тестах на основе приложений Adobe Premiere Pro и Magix Vegas Pro скорость выполнения теста пропорциональна количеству ядер процессора, то есть наиболее высокую скорость демонстрирует 18-ядерный процессор Core i9-7980XE, а самую низкую — 10-ядерный процессор Core i9-7900X.

А вот в тестах на основе приложений Magix Movie Edit Pro, Adobe After Effects и Photodex ProShow Producer все процессоры демонстрируют примерно одинаковую производительность.

Индекс производительности в данном случае лишь подтверждает полученные результаты.

Опять-таки, все объясняется тем, что в тестах на основе приложений Adobe Premiere Pro и Magix Vegas Pro загрузка ядер процессора остается высокой и не уменьшается при увеличении числа ядер процессора, а в тестах на основе приложений Magix Movie Edit Pro, Adobe After Effects и Photodex ProShow Producer загрузка ядер процессора снижается при увеличении числа ядер, то есть данным тестам просто не нужно очень большое количество ядер.

Обработка цифровых фотографий

В группу «Обработка цифровых фотографий» входят три теста. Во всех тестах данной группы никакого преимущества многоядерные процессоры не имеют, и в тестах на основе приложений Adobe Photoshop и Adobe Photoshop Lightroom Classic результаты получаются примерно одинаковыми для всех процессоров, а в тесте на основе приложения Phase One Capture One Pro наилучший результат демонстрирует процессор Core i9-7940X.

Индекс производительности в данном случае не вполне соответствует действительности.

Точнее, для теста на основе приложения Adobe Photoshop индекс производительности получается одинаковым для всех процессоров, что вполне соответствует результатам. В тесте на основе приложения Adobe Photoshop Lightroom Classic наиболее высокий индекс производительности соответствует процессору Core i9-7900X, хотя результаты получаются примерно одинаковыми для всех процессоров. В тесте на основе приложения Phase One Capture One Pro наиболее высокий индекс производительности соответствует процессору Core i9-7980XЕ, хотя этот процессор проигрывает всем остальным в данном тесте. Все дело в том, что результат этого теста очень сильно зависит от производительности GPU, и использовать индекс процессорной производительности в данном случае не совсем корректно.

Более того, можно даже объяснить, почему индекс производительности плохо коррелирует с результатами теста на основе приложения Adobe Photoshop Lightroom Classic. Все дело в том, что тест на основе приложения Adobe Photoshop Lightroom Classic является составным, то есть он состоит из нескольких отдельных частей. Результат теста определяется как суммарное время выполнения всех частей, а вот мониторинг системы (загрузка ядер процессора, тактовая частота и т. д.) определяется только по одной составной части теста.

Распознавание текста

В группу «Распознавание текста» входит всего один тест на основе приложения Abbyy FineReader. В этом тесте результаты для процессоров Core i9-7980XE и Core i9-7960X получаются примерно одинаковыми.

Индекс производительности для процессоров Core i9-7900XE и Core i9-7960X также получается примерно одинаковым.

Объясняется это тем, что в тесте на основе приложения Abbyy FineReader загрузка процессора примерно одинаковая для моделей Core i9-7900X, Core i9-7940X и Core i9-7960X, но для процессора Core i9-7980XE загрузка снижается. Ну а тактовая частота уменьшается по мере увеличения числа ядер процессора.

Архивирование

В группу «Архивирование» входят два теста. В тесте на основе приложения 7-Zip лидерами по производительности являются процессоры Core i9-7960X и Core i9-7980XE, которые демонстрируют одинаковые результаты. А вот в тесте на основе приложения WinRAR именно эти два процессора «проваливаются», и лидером оказывается процессор Core i9-7940X.

Собственно, ничего удивительного в этих результатах нет, и индекс производительности хорошо коррелирует с полученными результатами.

В тесте на основе приложения WinRAR тактовая частота и загрузка процессора снижаются при переходе к процессорам с бо́льшим числом ядер. В результате оптимальным оказывается процессор Core i9-7940X.

В тесте на основе приложения 7-Zip тактовая частота тоже снижается при переходе к процессорам с бо́льшим числом ядер, но не так сильно, как в тесте на основе приложения WinRAR. Кроме того, загрузка процессоров остается высокой и лишь немного уменьшается для топового процессора .Core i9-7980XE. В результате оптимальными оказываются процессоры Core i9-7960X и Core i9-7980XE.

Научные расчеты

В группу «Научные расчеты» входят четыре теста. В тестах на основе приложений LAMMPS и NAMD самую высокую производительность демонстрирует процессор Core i9-7980XE.

В тестах на основе приложений Mathworks Matlab и SolidWorks результаты всех процессоров примерно одинаковые.

По индексу производительности получается схожая картина: максимальное значение для процессора Core i9-7980XE в тестах на основе приложений LAMMPS и NAMD и примерно одинаковое значение в остальных тестах для процессоров Core i9-7940X, Core i9-7960X и Core i9-7980XE.

Результаты объясняются тем, что в тестах на основе приложений LAMMPS и NAMD загрузка процессоров очень высокая (порядка 100%) для любого числа ядер, а тактовая частота ядер лишь незначительно уменьшается при увеличении числа активных потоков.

В тестах на основе приложений Mathworks Matlab и SolidWorks загрузка процессоров низкая, и увеличение числа ядер не приводит к росту результата.

Вывод

Итак, мы подробно проанализировали результаты тестирования процессоров семейства Intel Core X по новой методике iXBT Application Benchmark 2018.

Еще раз отметим, что проводили мы это тестирование для того, чтобы ответить на главный вопрос: почему топовый 18-ядерный процессор Intel Core i9-7980XE, стоимость которого страшно произнести, в большинстве тестов уступает более дешевым процессорам семейства Intel Core X?

Напомним, что первоначально мы предполагали, что причиной этого является недостаточно эффективное воздушное охлаждение. Однако проведенное тестирование выявило, что причина кроется вовсе не в охлаждении: даже для 18-ядерного Core i9-7980XE вполне достаточно хорошего воздушного кулера (во всяком случае, если не разгонять процессор).

Главный же вывод таков: проблема многоядерных процессоров заключается в том, что они не нужны. (Утрируем, конечно.)

Если серьезно, то большинству пользовательских приложений (не специализированных приложений для рабочих станций и серверов, а именно пользовательских) такое большое количество ядер, как в процессоре Core i9-7980XE, просто не нужно. 18 ядер — это, конечно, очень круто, но где взять приложения, которые способны распараллелиться на 36 потоков (с учетом технологии Hyper-Threading)? И получается, что во многих случаях лучше 10, 14 или даже 16 чуть более быстрых ядер, чем 18 медленных.

По нашим расчетам, оптимальным для «домашнего HPC» сегодня является 14-ядерный (28 потоков) процессор Core i9-7940X, тогда как процессоры с 16 и 18 ядрами обойдутся дороже, однако не только не позволят получить особого прироста производительности, но в некоторых приложениях будут даже уступать своим менее многоядерным собратьям. То есть Core i9-7940X — это та самая «золотая середина» между тактовой частотой и количеством ядер.

17 апреля 2018 Г.