Перефразируя советского Чебурашку: «Мы ждали, ждали и наконец дождались!». Intel выпустила новые процессоры — Core i9-12900k. На новом техпроцессе, новой архитектуре, новом сокете и с новой памятью. Сам Раджа Кодури еще полтора года назад высказывался в том ключе, что выход этих процессоров может стать наиболее значимым шагом для Intel со времён появления процессоров Core в 2006 году. Давайте рассмотрим эти процессоры внимательнее.   Работа над 10 нм техпроцессом Intel вела достаточно давно. Ещё во время работы над 10-ым семейством процессоров шла речь о переходе на новый техпроцесс. Но из-за различного рода проблем этот переход постоянно откладывался и откладывался. И это в то время, как тот же TSMC достигла техпроцесса в 5 нм, а точнее TSMC 5.    Тут стоит сказать, что как только Intel наконец-то смогла массово в 10 нм, она тут же переименовала техпроцесс в Intel 7. Видимо, чтобы более выгодно смотреться рядом с TSMC, с одной стороны, а с другой — мы уже немного сравнивали техпроцессы разных производителей в статье про AMD Ryzen и говорили, насколько эфемерно сейчас само понятие «нанометры» по отношению к процессорам.   Переход на новый техпроцесс позволил существенно уменьшить площадь кристалла самого процессора: старшая версия камня Alder Lake занимает всего 210 мм2, а это почти на четверть меньше площади восьмиядерного кристалла Rocket Lake. И при этом размер 16-ядерного «камня» Alder Lake вполне сопоставим с размером 10-ядерного кристалла Comet Lake, имеющего меньший объём кеш-памяти и более простые ядра.    Про Адлер Лейк уже рассказано столько… Пожалуй, это одна из самых обсуждаемых тем «железного» IT этого года.  Для начала поддержка нового типа оперативной памяти DDR5. Модули памяти теперь включают не только чипы памяти, но также собственные схемы управления питанием (PMIC — Power Management Integrated Circuit) и модули регулирования напряжения (VRM — Voltage Regulating Module). Раньше данный функционал несла на себе материнская плата, теперь же он переехал на модули памяти, а участие материнской платы ограничивается одной только подачей 5 В. То есть память поумнела. Есть и минус у такого решения: микросхемы VRM и PMIC греются. И если раньше охлаждением схем памяти и процессора комплексно занимались производители материнских плат, пряча их, например, под радиаторы, то теперь это головная боль производителей оперативной памяти. Однако, добавив поддержку новой DDR5, Intel сохранили поддержку предыдущей — DDR4. Такое «синие» последний раз делали в процессорах Core2Duo, а точнее в чипсетах при переходе с DDR2 на DDR3 — тогда ещё контроллер оперативной памяти был в северном мосту. При переходе с DDR3 на DDR4 (4, 5 и 6 поколения соответственно) такого счастья не было.  UPD. В комментариях товарищи меня поправили: поддержка DDR3L и DDR4 одновременно была в процессорах 6 и 7 тысячи. Хотелось бы сделать вид, что это был такой предумышленый интерактив на внимательность, но нет, я реально забыл про это 🙂 Благодарю вас, уважаемые, за внимательность и вовлечёность. В следующем поколении своих процессоров, заявленном вроде как на 2022 год, также обещают оставить поддержку памяти DDR4. Такого вообще никогда-никогда не было. Как впрочем, и второго релиза за один год, но все когда-то случается впервые. И это очень кстати: при современном глобальном дефиците приобрести DDR5 память ооооочень непросто :-)   За памятью цифру 5 заимела и шина PCI-E. Мы ещё не успели вдоволь напользоваться PCI-E 4.0 в процессорах AMD Ryzen, как Intel завезла новое поколение, прихватив и PCI-E 4.0: новые процессоры имеют, как и в случае с оперативной памятью, оба контроллера. Да, это просто праздник какой-то. Но самый цимес впереди. И теперь о важнейшем ноу-хау новых процессоров.  Гибридная архитектура Intel совместили в новой архитектуре Адлер Лейк (ничего не могу поделать, отдыхал летом в Адлере) два типа ядер: производительные (P-ядра) и эффективные (E-ядра). Как енто? А очень интересно. Теперь в процессоре есть классические, «большие», полнофункциональные ядра и «маленькие», обрезанные энергоэффективные.  По задумке Intel, большие производительные ядра следует бросать на решение высокоприоритетных задач переднего плана, требующих короткого времени реакции. В то время как маленькие и энергоэффективные ядра могут заняться фоновыми процессами. Вообще идея big.LITTLE не нова. Она давным-давным используется в мобильных процессорах на архитектуре ARM. Недавно и Apple, отказавшись от процессоров «синих», создала собственные «камни» и заимела в них большие и маленькие ядра. То есть за Intel в этот поезд не запрыгнула разве что только AMD. В целом, идея очень хорошая, и те же Apple великолепно её реализовали. Правда, у последних есть возможность делать не только свои процессоры, но и свою, оптимизированную, операционную систему. Ну, к вопросу ОС мы ещё в дальнейшем вернёмся. А пока о ядрах. Ядра получили новые микроархитектуры: большие — основаны на микроархитектуре Golden Cove, которая является дальнейшим развитием Cypress Cove (из Rocket Lake) и Willow Cove (из Tiger Lake). А эффективные малые ядра имеют микроархитектуру Gracemont. Она выросла из процессоров Atom и является дальнейшим развитием микроархитектуры Tremont, применявшейся как в экспериментальных процессорах Lakefield, так и в более понятных Pentium (Silver) и Celeron серий N и J с кодовыми именами Jasper Lake и Elkhart Lake. К слову, на наших материнских платах в настройках биоса эффективные ядра так и называются — Atom. Большие ядра, как и раньше, имеют полный «фарш»: HT, поддержку аппаратной виртуализации, набор инструкций AVX512 и пр., а также «классические» +19% производительности и «горячее» тепловыделение. Маленькие, одним словом, — Atom, что с них взять. Важной задачей, которую Intel ставила перед собой при разработке Alder Lake, было создание не только двух типов ядер, но и более широкого набора разнообразных конструкционных блоков, которые могли бы позволить легко собирать различные по назначению потребительские процессоры для разных рыночных сегментов и с различными характеристиками: как высокопроизводительные настольные, так и мобильные, и даже ультрамобильные. При таком глобальном обновлении со всех сторон не мог не смениться процессорный сокет. Теперь это LGA1700. Разработчики сохранили обратную совместимость по монтажным отверстиям с системами охлаждения для предыдущего сокета, но из-за того, что процессор стал немного толще, не все старые системы охлаждения можно установить. Графику, которая толком не изменилась, мы упустим. Так же упустим остальную периферию типа Thunderbolt 4, которая, конечно, важна, но не в разрезе серверов. Так, что мы имеем в сухом остатке? Новые нанометры, новые ядра двух видов, новую оперативную память и новую шину PCI-E. Прям флеш роял. Предлагаю переходить к тестированию.  Вороне как-то где-то что-то с сыром, а нам достался топовый процессор линейки Intel Core i9-12900K. Правда, только на платформе с поддержкой оперативной памяти DDR4, как я уже говорил, DDR5 в дефиците.  Прежде чем рассказать о том, что мы будем тестировать и как, буквально пара слов о технических нюансах нового процессора. Обращу внимание, что теперь Интел указывает два, а не один, как раньше, теплопакета: базовый и максимальный. Максимальный теплопакет у данного процессора аж 241 ватт. К чему я лично отношусь с большим скепсисом, потому как этот процессор в некоторых тестах смог прогреть нашу кастомную систему охлаждения до троттлинга, чего не смогли сделать ни его старшие родственники, ни конкуренты из стана «красных» (для тех, кто пропустил предыдущие серии: красные — это AMD :-) ). То есть даже с новым техпроцессом жарит топочка — моё почтение. Теперь относительно ядер. В новом камне 8 больших и 8 маленьких ядер. Большие ядра поддерживают HT и максимальную частоту в 5,2 ГГц, маленькие — без HT и с максимальной частотой 3,9 Ггц. Итого в процессоре 16 ядер и 24 потока. И у внимательного читателя может появиться вопрос: «А как операционная система различает эти ядра и распределяет по ним нагрузку?». Резонно. Например, в ранее упомянутых решениях компании Apple в операционную систему macOS запилили отличную поддержку своих процессоров M1. Интел также разработала несколько решений для поддержки новых процессоров со стороны операционных систем, например, технологию Thread Director. Но на момент выхода процессора официально поддерживается только свежей ОС Microsoft Windows 11. При этом в Интел утверждают, что и с операционной системой Windows 10 у новых процессоров проблем быть не должно. Да, «десяткой» не поддерживается новая технология Thread Director, умеющая напрямую взаимодействовать с планировщиком ОС. Но зато в ней предусмотрен такой механизм, как Intel Hardware Guided Scheduling — не настолько хорош, как Thread Director, но тоже способен управлять потоками, переключая их, с учётом разнокалиберности ядер. В Интел уверяют, что разница в производительности процессоров на новой архитектуре в 10 и 11 Windows настолько мала, что с ходу её сложно заметить. В ядро GNU/Linux же поддержку новых процессоров начали добавлять ещё в версии 5.10 и закончили в 5.15, но на данный момент ядра из этого сегмента не идут по умолчанию в дистрибутивах ОС Linux, популярных для работы с серверами, за исключением Debian 11, в котором как раз используется версия 5.10. Относительно бэкпортирования поддержки в основные ядра CentOS 7/8, Ubuntu 18.04/20.4, Debian 10/11, а также в Microsoft Windows Server мне не известно. Поэтому, если вы что-то знаете по этому поводу, обязательно напишите в комментариях, — буду признателен. Полагаю, что новый Microsoft Windows Server 2022 должен поддерживать Thread Director, но это не точно. Теперь вернемся к тестированию, которое в этот раз шло аж в два этапа. Сперва мы уже вполне традиционно сравним между собой разные поколения Intel Core и посмотрим, как глубока кроличья нора. А точнее, пропасть между новым процессором i9-12900k и его предшественниками — i9-10900k, i9-11900k.  На втором шаге пристальней присмотримся к самому i9-12900k. Ранее я говорил, что у нас имеются платформы только на DDR4, так как достать DDR5 весьма проблематично. Но для тестового стенда мы все-таки смогли её отыскать. Очень уж хочется посмотреть, насколько в действительности увеличивается производительность с новой памятью и стоит ли за ней гоняться. Далее. Я не зря писал про поддержку Thread Director, которая пока есть только в Windows 11 и в свежих ядрах Линукса. Так как мы проводили тесты на CentOS 8 со штатным ядром 4.18, то дополнительно запилили ещё тесты на предпоследнем на момент проведения тестов ядре 5.14.15 из репозитория ELRepo, где уже должна быть полная поддержка. И дополнительно сделали тесты как со всеми ядрами, так и только с большими, чтобы посмотреть, насколько в действительности маленькие ядра накидывают производительности.  Сделать чистые тесты только маленьких ядер не получилось, так как нельзя отключить все большие — одно обязательно должно быть включено. Из вышесказанного читателю уже должно было стать понятно, что есть потрясающая возможность выключать ядра. Опять же, забегая вперёд, могу сказать, что эта возможность может пригодиться при некоторых сценариях использования. Об одном мы даже узнали от одного из первых клиентов :-) Но об этом чуть позже.  А теперь переходим к тестовому стенду.  Процессоры Intel i9-10900k Материнская плата: ASUS Pro WS W480-ACE Оперативная память: 16 Гб DDR4-2933MT/s Kingston 2 штуки NVMe-накопитель: Intel 665p 1 Тб. Процессоры Intel i9-11900k Материнская плата: ASRock H570 Phantom Gaming 4 Оперативная память: 16 Гб DDR4-3200MT/s Kingston 2 штуки NVMe-накопитель: Intel 665p 1 Тб. Процессоры Intel i9-12900k Материнская плата: Gigabyte Z690 UD DDR4 Оперативная память: 16 Гб DDR4-3200MT/s Kingston 2 штуки NVMe-накопитель: Intel 665p 1 Тб. В конфигурации используется одноюнитовые платформы с кастомной системой жидкостного охлаждения. Программная часть: ОС CentOS Linux 8 x86_64 (8.5.2111). Ядро: штатное ядро 4.18.0-348.2.1.el8_5 и ядро из репозитория ELRepo 5.14.15-1.el8.elrepo Внесённые оптимизации относительно штатной установки: добавлены опции запуска ядра elevator=noop selinux=0 Тестирование производится со всеми патчами от атак Spectre, Meltdown и Foreshadow, бэкпортироваными в данное ядро. Geekbench Sysbench Phoronix Test Suite Тест Geekbench Пакет тестов, проводимых в однопоточном и многопоточном режиме. В результате выдаётся некий индекс производительности для обоих режимов. В этом тесте мы рассмотрим два основных показателя: Single-Core Score — однопоточные тесты. Multi-Core Score — многопоточные тесты. Единицы измерения: абстрактные «попугаи». Чем больше «попугаев», тем лучше. Тест Sysbench Sysbench — пакет тестов (или бенчмарков) для оценки производительности разных подсистем компьютера: процессор, оперативная память, накопители данных. Тест многопоточный, на все ядра. В этом тесте я замерял один показатель: CPU speed events per second — количество выполненных процессором операций за секунду. Чем выше значение, тем производительнее система. Тест Phoronix Test Suite Phoronix Test Suite — очень богатый набор тестов. Почти все представленные тут тесты — многопоточные. Исключение составляют лишь два из них: однопоточные тесты 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 выполняется в один поток. Измеряется время прохождения теста. Timed GCC Compilation. Показывает, сколько времени занимает сборка компилятора GNU GCC (версия 8.2.0). Единицы измерения — секунды. Кодирование видеоданных. Тест ffmpeg x264 — многопоточный. Измеряется время прохождения теста. Как видим, результаты получились довольно впечатляющие. Отрыв нового процессора от своего предшественника, выпущенного в этом же году, только лишь в тесте Sysbench составил около 80%, а в тесте Geekbench — 11,6% и 50,9% в однопоточном и многопоточном режиме соответственно. В целом, никакой интриги, всё ожидаемо (Кодури же сказал): новый Intel Core i9-12900k рвёт всех предшественников по всем направлениям. Но есть нюансы — и о них ниже.   Так как в пакете тестов Phoronix Test Suite обновились версии тестов Apache и 7-Zip, став несовместимыми по результатам с предыдущими своими версиями, мы добавили три дополнительных теста, которые заменят своих предшественников в будущем:  7-Zip 21.06 Compression Rating — тест на сжатие, больше — лучше 7-Zip 21.06 Decompression Rating — тест на распаковку, больше — лучше Apache 2.4.48 Concurrent Requests: 1000 — тест Apache-сервера с 1000 параллельных запросов, больше — лучше. Какие выводы можно сделать относительно DDR5 памяти? Да, в некоторых тестах есть незначительный прирост производительности, в некоторых — значительный, например, в тестах сжатия и распаковки 7zip и апаче — программах, которые явно чувствительны к производительности ОЗУ. В большинстве же тестов разница в результатах незначительна. Из чего лично я бы сделал следующий вывод: гоняться и ждать DDR5 в этом поколении не стоит, а вот к следующему поколению процессоров — обязательно. Как раз станет более доступной память с частотами DDR5-5200 и выше. Теперь относительно отключенных энергоэффективных ядер и более новом ядре ОС. В однопоточных тестах разницы в результатах практически нет: планировщики в стоковом ядре и более новом корректно выбирают большие ядра. Например, в Geekbench в однопоточном тесте практически ровное плато на графике даже с DDR5 памятью, или в том же Himeno и тесте MP3. В многопоточных тестах всё совсем по-другому. В числодробилке Sysbench энергоэффективные ядра добавляют чуть меньше половины производительности, в тесте John The Ripper и C-Ray — почти треть, аналогично в декомпрессии 7-Zip 21.06 и OpenSSL.  Значительно меньший прирост в тестах на сжатие, многопоточное кодирование FFmpeg и компиляцию из исходников в GCC. Иногда «чувствуется» более свежее ядро, но в общий результат оно добавляет несущественно, хотя немного, да, есть. Интересный результат получится в тесте Apache. В старом тесте 2.4.29 включенные ядра съедают производительность, а в новом 2.4.48 — добавляют. Также в этом тесте очень хорошо показывает себя DDR5 память, как и в обоих тестах на сжатие 7-Zip. Лично у меня, при взгляде на гибридную архитектуру и на теплопакет, сложилось впечатление, что Интел просто не смогла уложить 12 ядер в приемлемый теплопакет. А что, 8 ядер уже было, 10 ядер тоже было, причём, ещё в десятом поколении. А у конкурента вон, вообще 16 ядер! Не солидно выпускать «революцию» на таких позициях. А вот 16 ядер — это круто. И всё равно, что 8 из них неполноценны. Как раз давно витала в воздухе идея big.LITTLE, которой можно прикрыться.  Конечно, да, в мобильной технике, где требуется энергосбережение, это вот очень классно. Но не на серверах или игровых ПК, хотя уже есть в сети заметки на тему серьёзного увеличения производительности в играх на Адлерах и что этому прилично помогают маленькие ядра. В некоторых тестах, как мы видели, маленькие ядра заметно добавляют производительности. В некоторых — незначительно, а в некоторых даже ухудшают результаты. Всё зависит от набора инструкций, которые необходимы проводимому тесту. Тут плавно подходим к поддержке со стороны ОС. Особой разницы в нагрузочных тестах мы не увидели, но есть тесты, в которых планирование задач в новом ядре эффективнее. Например, в тесте «попугаев» Битрикс. На стоковом ядре CentOS 7, а Битрикс пока официально работает только на этой ОС, тест может попасть на маленькое ядро и получить около 88 попугаев, а может попасть на большое ядро и показать до 212 попугаев. С более свежим ядром разница в тесте менее заметна. Проведено 10 подходов тестирования.  3.10 — родное для CentOS 7 ядро  5.14 — последнее доступное ядро  8 — используются только производительные ядра  8+8 — используются производительные и экономичные ядра Тут мы подходим к вопросу: а где маленькие ядра стоит выключить?  Однозначно их придётся выключить на хосте с виртуализацией Hyper-V, иначе сервер будет падать в синий экран. Проверено на Windows Server 2016/2019. Пока это работает так, может быть в будущем что-то изменится. Да и вообще, собирать сервер виртуализации с расчётом на 16 ядер однозначно не стоит, по крайней мере в этом поколении процессоров. Рекомендую также выключить ядра при работе с Битриксом, если вам важны попугаи. В реальных же нагрузках на новых ядрах просадок производительности быть не должно. Но! Даже без маленьких ядер новые процессоры Интел уверенно обходят представителей предыдущих поколений. И в однопоточных тестах, где результат очень впечатляющий. И в многопоточных тестах. Видно, что над ядрами в Интел очень хорошо поработали. Маленькие же ядра являются приятным бонусом, который хорошо добавляет в некоторых нагрузках, незначительно влияя на теплопакет и энергопотребление. Лично я очень не люблю, когда в статье про тестирование или сравнение чего-либо автор в выводах однозначно не говорит: хорошо — нехорошо, брать — не брать. Поэтому говорю: новое поколение процессоров Intel Core 12 однозначно лучше своих предшественников как при включённых E-ядрах, так и при выключенных. P.S. Если решите арендовать выделенный сервер с новыми Intel Core, то можете выбрать конфигурацию на сайте 1dedic.ru.  Также до 30 декабря включительно можно заказать выделенные серверы на базе процессоров Intel Core прошлых поколений с 20%-ой скидкой.   При выборе срока аренды от 3 месяцев действуют скидки.