Бенчмарки: сколько теряют (и выигрывают) процессоры Intel без многопоточности в реальных приложениях

Как известно, недавно в процессорах Intel обнаружены четыре новые аппаратные уязвимости microarchitectural data sampling (MDS), которые допускают утечку конфиденциальных данных по сторонним каналам. Наиболее серьёзная из уязвимостей получила название ZombieLoad.

В отличие от предыдущих уязвимостей с эксплуатацией спекулятивного выполнения в CPU, которые затронули практически все процессоры, MDS затрагивает только чипы Intel. В краткосрочной перспективе единственный способ уменьшить или минимизировать влияние этих уязвимостей — отключить одновременную многопоточность (SMT) которую Intel называет Hyper-Threading.

Microsoft уже выпустила обновления ОС для четырёх уязвимостей MDS, они вышли с обновлением Windows 10 1903, которое накатывается в эти дни. Но патчи не устраняют проблему полностью, для этого нужны обновления BIOS материнской платы. Как сообщается, Intel выпустила новый микрокод для производителей материнских плат. Но пока новые версии BIOS не появились в открытом доступе. Поэтому издание Techspot протестировало наихудший сценарий, отключив Hyper-Threading. Для старых платформ без возможности обновления это единственное решение.
Тестирование проводилось на процессорах Core i7–8700K и 7700K. Их производительность проверялась в ряде игр и приложений с включенной функцией Hyper-Threading и без неё. По идее, для Core i9–9900K отключение многопоточности не должно стать большой проблемой, потому что это восьмиядерная система, хотя наверняка будет некоторое отрицательное влияние. А максимальной потери производительности можно ожидать в двухъядерных процессорах.

Тесты проводились на Windows 10 build 1903, с 32 ГБ памяти DDR4–3200 и GeForce RTX 2080 Ti. Игры запускались на 1080p и 1440p. Но сначала — тесты приложений.


В бенчмарке Cinebench R20 при отключении многопоточности процессор Core i7–8700K показал снижение производительности на 24%. «С точки зрения производительности мы по сути превращаем 8700K в 7700K, это довольно значительная потеря», — пишет Techspot.

В то же время 7700K с отключенной гиперпоточностью становится на 26% медленнее: это как старый четырёхъядерный процессор или Core i5 поколения Kaby Lake. Для приложений, которые сильно задействуют ядра, отключение SMT/Hyper-Threading оказывает большое влияние на производительность.

ad0cec4aeff485d5c1f6e664b505dc28.png

WinRAR демонстрирует серьёзное снижение пропускной способности на 36% на 8700K. Очевидно, что Hyper-Threading очень хорошо подходит для этого типа рабочей нагрузки. Аналогично, мы видим массовое снижение производительности на 7700K, в данном случае падение на 39%.

3fd777b6527c394df0dbb1f92f8c642d.png

В приложении для высокопроизводительного рендеринга Corona процессор 8700K с отключенной гиперпоточностью демонстрирует падение производительности на 31%, а процессор 7700K — на 33%. В обоих случаях снижение производительности очень серьёзное. Можно предположить, что аналогичный эффект проявится во многих задачах рендеринга и видеокодирования в зависимости от того, как сработают патчи.

af9e8b4e45b9f48451f9692375ddbbe9.png

В программе Blender падение производительности не такое большое: 25% для 8700K с отключенной функцией Hyper-Threading, что похоже на показатели Cinebench R20, хотя это всё равно значительное снижение. 7700K с меньшим количеством ядер страдает немного больше: здесь мы видим снижение производительности на 29%.

b80956b3b539d7df36588cc7f6277a67.png


Тесты показывают, что отключение Hyper-Threading на 8700K снижает энергопотребление примерно на 5%, что явно не будет достойной компенсацией за снижение производительности. В 7700K ситуация чуть получше: здесь снижение составило 11%.

461a53be27a7e3db7e38cd84caf0ee22.png


В игре Assassin’s Creed Odyssey на разрешении 1080p с процессором 8700K средний фреймрейт упал на 13%, однако минимальный FPS практически не изменился. С другой стороны, 7700K с меньшим количеством ядер показал серьёзное падение как средней частоты кадров, так и 1% самых низких FPS. Другими словами, здесь появление лагов наиболее вероятно: падение на 23% средней частоты кадров и на 21% минимального FPS.

c71b1ac64eac76a5413ef8222512c050.png

Хорошая новость в том, что если узким местом системы становится GPU, то практически никакого падения производительности не произойдёт. Это видно на бенчмарках с разрешением 1440p. Даже на высокопроизводительной видеокарте RTX 2080 Ti именно графика становится узким местом, поэтому фреймрейт на 8700K практически не изменяется с отключением многопоточности. Иная ситуация на более слабом процессоре 7700K, где всё-таки узким место становится CPU. При отключении Hyper-Threading средняя частота кадров упала почти на 18%.

350548cafcc7185e3a58f8e05e4c7133.png

Хотя Battlefield V очень интенсивно потребляет вычислительные ресурсы, но Techspot смогла протестировать только одиночную версию, где это не так заметно. Тестеры отмечают, что даже для одиночной версии понадобились две учётные записи Origin «благодаря восхитительной блокировке аппаратных изменений». Хорошая новость в том, что здесь большого снижения производительности не произошло, разве что на 12% в минимальном FPS на процессоре 7700K.

2b664444e01d4f4f9c291164354a5bef.png

Увеличение разрешения до 1440p не изменило ситуацию: здесь тоже снижение производительности во всех тестах, хотя разница невелика.

8325fba7e2fc7c6d4216d4c48bd05b59.png

А вот в игре Division 2 результаты ужасные. На процессоре 7700K с отключенной функцией Hyper-Threading средняя частота кадров снижается на 37%, а минимальная — на 38%, что близко к падению скорости архивирования WinRAR.

45b330e08de144503f6f7eb841d040b7.png

Снижение производительности на шестиядерном 8700K не такое значительное, а при разрешении 1440p вообще нет никакой разницы. Однако всё ещё есть падение минимального фреймрейта на 32% в системе на процессоре 7700K.

afffaf0edba47554def50730f865ce3b.png

Бенчмарки Far Cry New Dawn вообще показали удивительный результат. При отключении многопоточнорсти фреймрейт увеличился на обоих процессорах. Специалисты предполагают, что игра оптимизирована для шестиядерного 9700K, где она показывает около 120 FPS в 1080р. Возможно, поэтому 6 ядер/6 потоков тут более эффективны, чем 6 ядер/12 потоков. Однако и четырёхъядерный 7700K в Far Cry New Dawn тоже ускорился при отключении многопоточности. Так что в этой игре даже рекомендуется отключать многопоточность. Вероятно, ускорение будет особенно заметно на двухъядерных процессорах.

99caf9c8db0719e07d34127902e6dd6d.png

При переходе к 1440p количество ядер вообще не влияет. Здесь явно видно, что на самом деле Hyper-Threading замедляет игру и на 7700K, и на 8700K.

afd4b63795501c114e20483e32dbd8fe.png

В игре Hitman 2 отключение Hyper-Threading не оказывает реального влияния на 8700K, однако на четырёхъядерном 7700K падение серьёзное. Средняя частота кадров снизилась на 18%, а минимальный FPS — почти на 30%. Радует только, что минимальный фреймрейт всё равно всегда выше 60 кадров в секунду.

276a7efd50b947452ad278ece5b03974.png

Четырёхъядерный процессор страдает от отключения многопоточности даже на разрешении 1440p 7700K: снижение минимального фреймрейта на 25%.

7fd5a5009a7805ec243e56fd1f420645.png

Далее была протестирована игра Rage 2: на 8700K результаты совершенно идентичные, а на 7700K средняя частота кадров практически не изменилась, но минимальный FPS упал на заметные 20%.

dfaa6f71a72cbf744bd22cc52a9cbb37.png

На разрешении 1440p в Rage 2 процессор перестаёт быть узким местом, так что отключение многопоточности никак не влияет на производительность игры.

3bbd3dec4029c50aaeeb0ee445ea2b08.png

Игра Shadow of the Tomb Raider тоже весьма требовательна к CPU, что и сказалось на результатах тестов. На процессоре 8700K зафиксировано падение производительности на 10−12% с отключённой функцией Hyper-Threading, а на 7700K — на 24%, хотя минимальный фреймрейт сравним с 8700K.
84baf4fa5875525bcc139189d5c76668.png

Даже на 1440p эффект значителен, по крайней мере, для 7700K.

fa81db0c1d37b895b78808f34df98c2d.png

Последняя протестированная игра — World War Z с Vulkan API. Она отлично работает на четырёх ядрах, поэтому процессор практически не страдают от выключения многопоточности, а на 1440p результаты абсолютно идентичные.

a9910d197f6f558f0e902459de207e26.png

df812a430ace2c85f878933a5dfeccbc.png

Обобщая результаты, можно сделать вывод, что четырёх- и шестиядерные процессоры Intel с отключением Hyper-Threading на самых тяжёлых приложениях могут потерять до 25−35% производительности.

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

Ну, а при отключении многопоточности на процессоре с 8 ядрами/16 потоками, как 9900K, в играх не должно быть практически никакой разницы, хотя производительность других приложений всё равно может снизиться на 25–35% без SMT. С другой стороны, на процессорах нижнего уровня, которые больше полагаются на Hyper-Threading, проявится более существенная потеря производительности в играх. Даже четырёхъядерный 7700K часто показывал серьёзное падение производительности в игровых тестах, а на двухъядерных CPU проблема станет ещё заметнее.

На данный момент пока нельзя сказать, как повлияют на производительность патчи для Windows. Наверное, произойдёт некоторое снижение производительности: особенно там, где серьёзно используется многопоточность. Phoronix провёл тесты на Linux, и там падение производительности отличается в разных приложениях: оно варьируется от незначительного до очень большого. В целом системы Intel сейчас примерно на 16% медленнее из коробки, чем это было до установки патчей для защиты от Spectre, Meltdown, Foreshadow и Zombieload. Между тем, в системах на AMD производительность снизилась только на 3%. Phoronix делает вывод, что теперь ядро i7–8700K намного ближе по производительности к более слабому Ryzen 7 2700X, а ядро i9–7980XE приблизилось к Threadripper 2990WX.

Если Intel не сумеет сотворить чудо и выпустить настолько эффективный патч, что он не затронет многопоточность, то это значит катастрофические последствия для тех, кто использует двух- и четырёхъядерные процессоры Intel с поддержкой Hyper-Threading. Речь идёт о Core i3 и Core i5, начиная с Clarkdale до Kaby Lake, Core i7 до Kaby Lake и Pentium семейств Kaby Lake и Coffee Lake.

Techspot пишет, что если у вас установлено старое оборудование, которое не выполняет никаких критически важных задач, то может быть лучше вообще не обновлять операционную систему и не устанавливать патчи от Intel. По крайней мере, пока не появились первые рабочие эксплоиты: «Это не наша официальная рекомендация, а альтернативный вариант действий после выхода соответствующих обновлений».

В приведённых тестах проверяется наихудший сценарий с полным отключением Hyper-Threading, когда падение производительности максимальное. Но именно такой наихудший сценарий поддерживают разработчики некоторых операционных систем. Например, Google отключила Hyper-Threading в Chrome OS, а сообщество OpenBSD рекомендует сделать то же самое. Apple выпустила патчи с частичным закрытием уязвимостей и заявила, что полная защита требует отключения Hyper-Threading. Другие вендоры, в том числе Microsoft, ещё не обозначили окончательную позицию.

© Habrahabr.ru