ТАК-ТАК-ТАК и никакого тика
Чем отличаются процессоры Intel Core разных поколений на основе одной архитектуры
С появлением процессоров Intel Core седьмого поколения многим стало понятно, что стратегия «Тик-так», которой Интел следовал всё это время, дала сбой. Обещание уменьшить технологический процесс с 14 до 10 нм так и осталось обещанием, началась долгая эпоха «Така» Skylake, во время которой случился Kaby Lake (седьмое поколение), внезапный Coffee Lake (восьмое) с незначительным изменением техпроцесса с 14 нм до 14 нм+ и даже Coffee Lake Refresh (девятое). Кажется, Интелу и правда нужен был небольшой перерыв на кофе. В итоге мы имеем несколько процессоров разных поколений, которые созданы на основе одной микроархитектуры Skylake, с одной стороны. И уверения Интела о том, что каждый новый процессор — лучше прежнего, с другой. Правда, не очень понятно, чем именно…
Поэтому вернёмся к нашим поколениям. И посмотрим, чем же они отличаются.
Kaby Lake
Появление процессоров в рознице состоялось в начале 2017 года. Что же нового у этого семейства относительно его предшественника? Прежде всего, это новое графическое ядро — Intel® UHD 630. Плюс поддержка технологии памяти Intel Optane (3D Xpoint), а также новый чипсет 200-ой серии (6-ое поколение работало с 100-ой серией). И на этом из действительно интересных новшеств всё.Coffee Lake
8-ое поколение с кодовым названием Coffee Lake было выпущено в конце 2017 года. В процессорах этого поколения добавили ядер и пропорционально кэша третьего уровня, подняли Turbo Boost на 200 мегагерц, добавили поддержку DDR4-2666 (до этого было DDR4-2400), но отрезали поддержку DDR3. Графическое ядро осталось прежним, но ему накинули 50 MHz. За все повышения частот пришлось расплатиться увеличением теплопакета до 95 ватт. Ну и, конечно, новый чипсет 300-ой серии. Последнее было совсем не обязательно, так как достаточно скоро специалисты смогли запустить это семейство на чипсетах 100-ой серии, хотя представители Интел заявляли, что это невозможно из-за особенностей построения цепей питания. Позднее, правда, Интел официально признал, что был не прав. Так что же нового в 8-ом семействе? По факту больше похоже на обычный рефреш с добавлением ядер и частот.Coffee Lake Refresh
Ха! А вот нам и рефреш! В четвёртом квартале 2018 года были выпущены процессоры Coffee Lake 9-го поколения, оснащённые аппаратными средствами защиты от некоторых уязвимостей Meltdown/Spectre. Аппаратные изменения, внесённые в новые чипы, защищают от Meltdown V3 и L1 Terminal Fault (L1TF Foreshadow). Изменения в программном обеспечении и микрокоде защищают от атак Spectre V2, Meltdown V3a и V4. Защита от Spectre V1 по-прежнему будет осуществляться исправлениями на уровне операционной системы. Появление исправлений на уровне кристалла должно уменьшить влияние программных патчей на производительность процессоров. Но всю эту радость с защитами Интел реализовала только в процессорах для массового сегмента рынка: i7-9600k, i7-9700k, i9-9900k. Всем остальным, включая серверные решения, аппаратных защит не отсыпали. Впервые в истории потребительских процессоров Intel процессоры Coffee Lake Refresh поддерживают до 128 ГБ оперативной памяти. И всё, больше никаких изменений.Что мы имеем в сухом остатке? Два года рефрешей, игры с ядрами и частотами, плюс набор мелких улучшений. Очень хотелось объективно оценить и сравнить производительность основных представителей этих семейств. Поэтому, когда у меня под рукой оказался комплект от седьмого до девятого поколения — к нашим i7-7700 и i7-7700k недавно добавились свежие i7-8700, i7-9700k и i9-9900k, я воспользовался ситуацией и заставил пять разных процессоров Intel Core показать, на что они способны.
Тестирование
В тестировании участвуют пять процессоров Intel: i7-7700, i7-7700k, i7-8700, i7-9700k, i9-9900k.
Тактико-технические характеристики процессоров
Тактико-технические характеристики платформ
Процессоры Intel i7-8700, i7-9700k и i9-9900k имеют одинаковую базовую конфигурацию:
- Материнская плата: Asus PRIME H310T (BIOS 1405),
- Оперативная память: 16 Гб DDR4-2400 MT/s Kingston 2 штуки, итого 32 Гб.
- SSD-накопитель: 240 Гб Patriot Burst 2 штуки в RAID 1 (привычка, выработанная годами)
Процессоры Intel i7-7700 и i7-7700k также работают на одинаковой платформе:
- Материнская плата: Asus H110T (BIOS 3805),
- Оперативная память: 8 Гб DDR4-2400MT/s Kingston 2 штуки, итого 16 Гб.
- SSD-накопитель: 240 Гб Patriot Burst 2 штуки в RAID 1.
Мы используем самодельные шасси высотой в 1,5 юнита. В них размещаются четыре платформы.
Программная часть: ОС CentOS Linux 7 x86_64 (7.6.1810).
Ядро: 3.10.0-957.1.3.el7.x86_64
Внесённые оптимизации относительно штатной установки: добавлены опции запуска ядра
elevator=noop selinux=0.
Тестирование производится со всеми патчами от атак Spectre, Meltdown и Foreshadow, бэкпортированными в данное ядро. Не исключено, что результаты тестирования на более новых и актуальных ядрах Linux могут отличаться от полученных, а показатели будут лучше. Но, во-первых, лично мне CentOS 7 милее, а, во-вторых, RedHat активно занимается бэкпортированием новшеств, связанных с поддержкой оборудования, из новых ядер в своё, LTS. На то и надеюсь :-)
Тесты, которые использовал для исследования
- Sysbench
- Geekbench
- Phoronix Test Suite
Тест Sysbench
Sysbench — пакет тестов (или бенчмарков) для оценки производительности разных подсистем компьютера: процессор, оперативная память, накопители данных. Тест многопоточный, на все ядра. В этом тесте я замерял два показателя:
CPU speed events per second — количество выполненных процессором операций за секунду: чем выше значение, тем производительнее система.
General statistics total number of events — общее количество выполненных событий. Чем показатель выше, тем лучше.
Тест Geekbench
Пакет тестов, проводимых в однопоточном и многопоточном режиме. В результате выдаётся некий индекс производительности для обоих режимов. Ниже есть ссылки на результаты тестов. В этом тесте мы рассмотрим два основных показателя:
— Single-Core Score — однопоточные тесты.
— Multi-Core Score — многопоточные тесты.
Единицы измерения: абстрактные «попугаи». Чем больше «попугаев», тем лучше.
Тест Phoronix Test Suite
Phoronix Test Suite — очень богатый набор тестов. Несмотря на то, что были проведены все тесты из пакета pts/cpu, приведу результаты только тех из них, которые лично мне показались особенно интересными, тем более, что результаты упущенных тестов только подкрепляют общую тенденцию.
Почти все представленные тут тесты — многопоточные. Исключение составляют лишь два из них: однопоточные тесты Himeno и LAME MP3 Encoding.
В этих тестах чем показатель больше, тем лучше
- Многопоточный тест John the Ripper для подбора паролей. Возьмём криптоалгоритм Blowfish. Измеряет количество операций в секунду.
- Тест Himeno — линейный решатель давления Пуассона, использующий точечный метод Якоби.
- 7-Zip Compression — тест 7-Zip с использованием p7zip с интегрированной функцией тестирования производительности.
- OpenSSL — это набор инструментов, реализующих протоколы SSL (Secure Sockets Layer) и TLS (Transport Layer Security). Измеряет производительность RSA 4096-бит OpenSSL.
- Apache Benchmark — тест измеряет, сколько запросов в секунду может выдержать данная система при выполнении 1 000 000 запросов, при этом 100 запросов выполняются одновременно.
А в этих если меньше, то лучше
- C-Ray тестирует производительность CPU на вычислениях с числами с плавающей запятой. Этот тест является многопоточным (16 потоков на ядро), будет стрелять 8 лучами из каждого пикселя для сглаживания и генерировать изображение 1600x1200. Измеряется время выполнения теста.
- Parallel BZIP2 Compression — тест измеряет время, необходимое для сжатия файла (пакет .tar исходного кода ядра Linux) с использованием сжатия BZIP2.
- Кодирование аудио- и видеоданных. Тест LAME MP3 Encoding выполняется в один поток, а тест ffmpeg x264 — многопоточный. Измеряется время прохождения теста.
Как видите, набор для тестирования состоит сугубо из синтетических тестов, позволяющих показать разницу между процессорами при выполнении определённых задач, например, щёлканье паролей, кодирование медиаконтента, криптография.
Синтетический тест, в отличие от теста, который проводится в условиях, приближенных к реальности, способен обеспечить определённую чистоту эксперимента. Собственно, поэтому выбор и пал на синтетику.
Не исключено, что при решении частных задач в боевых условиях вы сможете получить крайне интересные и неожиданные результаты, но всё же «общая температура по больнице» будет максимально приближена к тому, что получилось у меня по результатам тестов. Так же не исключено, что при отключении защиты от Spectre/Meltdown при тестировании процессоров 9-ого поколения, я мог бы получить более высокие результаты. Но, забегая вперед, скажу — они и так отлично себя показали.
Спойлер: балом будут править ядра, потоки и частоты
Ещё до тестирования я внимательно изучил архитектуру семейств этих процессоров, поэтому ожидал, что существенных отличий между подопытными не обнаружится. Причём, не столько существенных, сколько экстраординарных: зачем ждать интересных показателей в тестах, если проводишь измерения на процессорах, построенных, в сущности, на одном ядре. Мои ожидания оправдались, но кое-что всё же оказалось не совсем так, как я думал…
А теперь, собственно, результаты тестов.
Результаты теста Sysbench
Результат вполне закономерный: у кого больше потоков и выше частота, того и баллы. Соответственно, i7-8700 и i9-9900k впереди. Разрыв между i7-7700 и i7-7700k 10% в однопоточном и многопоточном тесте. Отставание i7-7700 от i7-8700 на 84% и от i9-9900k на 95%, то есть почти в 2 раза, но при этом отставание от i7-9700k всего 18%.
Результаты теста Geekbench
Ссылки на результаты тестов:
Intel i7-7700
Intel i7-7700k
Intel i7-8700
Intel i7-9700k
Intel i9-9900k
Результаты тестов из пакета Тhe Phoronix Test Suite
Результаты теста John The Ripper
В тесте John The Ripper разница между братьями-двойняшками i7-7700 и i7-7700k в 10% в пользу «k», за счёт разницы в Турбобусте. У процессоров i7-8700 и i7-9700k разница весьма незначительная. i9-9900k обгоняет всех за счёт большего числа потоков и большей тактовой частоты, а двойняшек на 72% и 90% соответственно, то есть почти в 2 раза первого и на три четверти второго.
Результаты теста C-Ray
Результат теста C-Ray мне кажется самым интересным. Наличие технологии Hyper-Treading у i9-9900k в этом многопоточном тесте даёт лишь незначительный прирост относительно i7-9700k. А вот двойняшки отстали от лидера на 82%, то есть почти в 2 раза.
Результаты теста Himeno
В однопоточном тесте Himeno разница не настолько велика. Ощутимый отрыв 8-ого и 9-ого поколения от двойняшек: i9-9900k обгоняет их на 19% и 22% соответственно. Разница же между i7-8700 и i7-9700k на уровне погрешности.
Результаты теста Compress-7zip: Compress Speed Test
Тест на компрессию 7zip двойняшки проходят на 79-93% хуже, чем лидер i9-9900k. За счёт большего количества потоков i7-8700 обгоняет i7-9700k на 9%. Но этого не хватает, чтобы обогнать i9-9900k, поэтому наблюдаем отставание почти на 22%.
Результаты теста Compress-pbzip2: 256MB File Compression
Тест на время сжатия алгоритмом BZIP2 показывает аналогичные результаты: выигрывают потоки.
Результаты тестов Encode-mp3: WAV To MP3 и ffmpeg: H.264 HD To NTSC DV
Кодирование mp3 — «лестница» с максимальным отрывом в 19,5%. А вот в тесте ffmpeg i9-9900k проигрывает i7-8700 и i7-9700k, но обходит двойняшек. Несколько раз переделал этот тест для i9-9900k, но результат всегда одинаковый. Вот это уже неожиданно :-) В многопоточном тесте самый многопоточный из тестируемых процессоров показал такой невысокий результат, ниже чем у 9700k и 8700. Чётких объяснений сему явлению нет, а предположений делать не хочется.
Результаты теста openssl: RSA 4096-bit Performance
Тест openssl показывает «лестницу» с разрывом между второй и третьей ступенью. Разница между двойняшками и лидером i9-9900k от 73% до 90%. Разрыв же между i7-8700 и i9-9900k 18%. Главное, потоки и частоты.
Результаты теста apache: Static Web Page Serving
В тесте Apache i7-9700k обошёл всех, включая i9-9900k (6%). Но в общих чертах разница не существенная, хотя между худшим результатом i7-7700 и лучшим у i7-9700k отрыв в 31%.
Результаты по всем тестам
В целом, в большинстве тестов лидирует i9-9900k, провал только на ffmpeg. Соберетесь работать с видео, возьмите лучше i7-9700k или i7-8700. На втором месте в общем зачёте i7-9700k, он незначительно отстаёт от лидера, а в тестах ffmpeg и apache даже опережает. Так что его и i9-9900k смело советую тем, у кого регулярно случаются большие наплывы пользователей на сайт. Процессоры подвести не должны. Про видео я уже сказал.
У i7-8700 хорошие показатели по тестам Sysbench, 7zip и ffmpeg.
Во всех тестах i7-7700k лучше i7-7700 от 1,4% до 12,5%, в тесте ffmpeg 16%.
Напомню, что никаких оптимизации, кроме указанных в начале, я не делал, а это значит, что при установке чистой системы на свежекупленном у нас дедике, вы получите точно такие же результаты.
Ядра, потоки, частоты — наше всё
В целом, результаты были предсказуемы и ожидаемы. Практически во всех тестах появляется «лестница в небо», демонстрирующая зависимость производительности от количества ядер, потоков и частот: больше вот этого всего — лучше результаты.
Поскольку все испытуемые фактически являются рефрешами одного и того же ядра на одном техпроцессе и не имеют каких-либо фундаментальных архитектурных различий, мы не смогли получить «ошеломляющих» доказательств того, что процессоры качественно отличаются друг от друга.
Разница между процессорами i7-9700k и i9-9900k во всех тестах, кроме Sysbench, стремится к нулю, так как по сути отличаются они лишь наличием технологии Hyper-Threading и сотней дополнительных мегагерц в режиме Turbo Boost у i9-9900k. В тесте же Sysbench как раз наоборот: решает не количество ядер, а количество потоков.
Очень большой разрыв в многопоточных тестах между i7-7700(k) и i9-9900k, местами аж в два раза. Также есть разница между i7-7700 и i7-7700k — лишние 300 MHz добавляют прыткости последнему.
Также не могу говорить о качественном влиянии объёма кэш-памяти на результаты тестов — имеем, что имеем. Тем более, включённая защита семейства Spectre/Meltdown должна изрядно уменьшать влияние его объёма на результаты теста, но это не точно. Если уважаемый читатель потребует «хлеба и зрелищ» от нашего отдела маркетинга, я с удовольствием выкачу вам тестирование с отключенной защитой.
Собственно, если бы меня спросили: а какой процессор ты сам выберешь? — я бы для начала посчитал деньги в кармане, и выбрал тот, на который хватает. Если коротко, то из точки в А в точку Б можно доехать и на «Жигулях», но на «Мерседесе» всё же быстрее и приятней. Процессоры, в основе которых лежит одна архитектура, так или иначе будут справляться с одинаковым спектром задач — кто-то просто хорошо, а кто-то отлично. Да, как показало тестирование, глобальных отличий между ними нет. Но разрыв между i7 и i9 от этого никуда не делся.
При выборе процессора для некоторых частных узкоспециализированных задач, как работа с mp3, компиляция из исходников или рендеринг трёхмерных сцен с обработкой света, имеет смысл ориентироваться на показатели соответствующих тестов. Например, дизайнерам можно сразу смотреть на i7-9700k и i9-9900k, а под сложные вычисления брать процессор с технологией Hyper-Threading, то есть любой, кроме i7-9700k. Тут рулят потоки.
Так что советую выбирать то, что можете себе позволить с учётом спецификации, и будет вам счастье.
Весь вечер на арене Trashwind.
Словарь терминов (взято из wiki)
- Литография — технологический процесс изготовления полупроводниковых (п/п) изделий и материалов. Совершенствование технологии и пропорциональное уменьшение размеров п/п структур способствуют улучшению характеристик: размеры, энергопотребление, рабочие частоты, стоимость полупроводниковых приборов.
- Ядро микропроцессора — термин не имеет чёткого определения и в зависимости от контекста употребления может обозначать особенности, позволяющие выделить модель в отдельный вид: физическую реализацию (часть микропроцессора), кристалл микропроцессора (CPU или GPU), набор характеристик организационного, схемотехнического или программного характера и т.д. Ядро микропроцессора обычно имеет собственное кодовое обозначение (например, K7) или имя (например, Deschutes)
- Одновременная многопоточность (англ. Simultaneous Multithreading — SMT) — одна из двух главных форм многопоточности, которая может быть реализована в процессорах аппаратно. Технология одновременной многопоточности позволяет исполнять инструкции из нескольких независимых потоков выполнения на множестве функциональных модулей суперскалярного микропроцессора в одном цикле. Реализация данной технологии от компании Intel называется Hyper-threading.
- Turbo Boost (англ. Turbo Boost, от лат. turbo — вихрь, и англ. boost — повышение) — технология компании Intel для автоматического увеличения тактовой частоты процессора свыше номинальной, если при этом не превышаются ограничения мощности, температуры и тока в составе расчётной мощности (TDP). Это приводит к увеличению производительности однопоточных и многопоточных приложений. Фактически, это технология «саморазгона» процессора. Доступность технологии Turbo Boost не зависит от количества активных ядер, однако зависит от наличия одного или нескольких ядер, работающих с мощностью ниже расчётной.
- Кэш микропроцессора — кэш (сверхоперативная память), используемый микропроцессором компьютера для уменьшения среднего времени доступа к компьютерной памяти. Является одним из верхних уровней иерархии памяти. Если большая часть запросов в память будет обрабатываться кэшем, средняя задержка обращения к памяти будет приближаться к задержкам работы кэша.