После более чем года намеков на свои 256-ядерные Epyc, AMD наконец готова рассказать об архитектурных изменениях ядра Zen, которые не только делают это возможным, но и в конечном итоге будут питать следующее поколение процессоров Ryzen для настольных ПК и мобильных устройств.
На пресс-мероприятии в Лас-Вегасе на прошлой неделе AMD раскрыла подробности о своих новейших ядрах Zen, которые обещают в среднем на 27 процентов больше инструкций за такт (IPC) при работе с различными рабочими нагрузками в области ИИ и серверов, а также увеличенные тактовые частоты в диапазоне от 4,1 до 5,3 ГГц. Мы ожидаем увидеть еще более высокие частоты на потребительских чипах в ближайшее время, но AMD пока не готова говорить о Ryzen.
Производительность ЦП зависит от мощности, IPC и тактовых частот, и благодаря улучшениям по всем трем параметрам эти ядра обещают стать одним из самых значительных поколенческих скачков компании.
История двух ядер
Как и в прошлых выпусках Epyc, Zen 6 — это не одно ядро. Оно представлено в двух вариантах: оптимизированный по частоте (Zen 6) и оптимизированный по плотности (Zen 6c).
Это разделение восходит к выпуску процессоров Bergamo Epyc от AMD в 2023 году, которые содержали 128 компактных ядер Zen 4c всего в восьми чиплетах. Дебют чипа вызвал сравнения с относительно новыми Efficient (E-cores) от Intel по очевидным причинам. Но под капотом Zen 4c от AMD не было ничего общего с тем, что делала Intel. Само ядро было почти идентично Zen 4; оно просто обменивало тактовые частоты и немного кэша на ядро ради более плотной компоновки кристалла ЦП.
Единственное отличие при запуске приложения на Bergamo или Genoa заключалось в скорости его выполнения. То же самое нельзя было сказать о P- и E-ядрах Intel, которые использовали разные ISA.
Это оставалось определяющей характеристикой и преимуществом компактной архитектуры ядер AMD вплоть до Zen 5, что позволило компании выпустить модели Turin с до 192 ядрами, не заставляя пользователей беспокоиться о том, работает ли их приложение на компактном ядре.
С Zen 6c, по крайней мере, насколько мы понимаем, эта философия в значительной степени не изменилась. Zen 6 и Zen 6c используют одну и ту же ISA, а основным отличием являются тактовые частоты. Существуют и другие микроархитектурные различия между двумя ядрами, призванные более эффективно сбалансировать IPC и тактовые частоты.
Глядя на блок-схему ядра, это не сразу очевидно. Zen 6 и Zen 5 имеют очень похожие фронтенд и бэкенд.
Мы бы назвали это ядро итеративным, если бы не заявленное AMD увеличение IPC на 20-31 процент для облачных и ИИ-нагрузок по сравнению с Zen 5. Это предполагает, что ядро на ядро, 4,1 ГГц Zen 6c-based Venice Epyc должен обеспечивать производительность, сопоставимую с Zen 5-based Turin Epyc, работающим на 5 ГГц.
Это довольно существенный скачок, но только потому, что AMD видит поколенческое увеличение производительности в корпоративных серверных и облачных рабочих нагрузках, не означает, что мы увидим такие же приросты на стороне клиента. Многие вспомнят примерно 5-процентное увеличение производительности, о котором сообщали энтузиасты игровых ПК с процессорами Ryzen 9000-й серии, что привело к довольно неудачной фразе “Zen 5 percent”.
Это произошло потому, что игровые движки в то время просто не были ограничены производительностью ЦП, и поэтому более быстрые ядра могли лишь незначительно повысить потолок. Тем не менее, Майк Кларк, сотрудник AMD и “отец Zen”, сообщил El Reg, что покупатели ПК ожидают от Zen 6 более 6-процентного прироста.
Мы опускаем здесь множество низкоуровневых архитектурных оптимизаций, но, по словам Кларка, одним из главных факторов производительности стал фронтенд. Zen 5 представил двойной фронтенд, который отлично работал с простыми рабочими нагрузками, но терял много мощности при столкновении с более динамичными нагрузками.
“Команда Zen 6 проделала действительно хорошую работу для тех рабочих нагрузок с большим объемом, которые имеют биполярную природу”, — сказал Кларк. “Это не то, что очевидно. Вы не увидите этого хорошо на блок-схеме. Это своего рода тонкость… но это большой рычаг”.
Еще одним фактором стал переход к распределенному планировщику в конвейере внеочередного исполнения. Одним из главных факторов производительности в современных ядрах ЦП является то, что они не выполняют инструкции в том порядке, в котором их получают. Вместо этого они переупорядочивают инструкции, чтобы обеспечить постоянный поток инструкций для исполнительных блоков бэкенда ядра.
Именно здесь мы видим самое большое различие между Zen 6 и Zen 6c. Чтобы компенсировать более низкие тактовые частоты последнего ядра, AMD увеличила глубину очередей планировщика ядра, что, по словам Кларка, помогает при работе с рабочими нагрузками с высокой задержкой. Тем временем, насколько мы понимаем, более мелкая очередь Zen 6 позволяет ему работать на более высоких частотах при меньшем энергопотреблении.
Наконец, в бэкенде AMD внесла несколько тонких изменений, которые должны иметь серьезные последствия для рабочих нагрузок с интенсивным использованием векторов, включая ИИ. Одним из наиболее значительных было возможность выполнять четыре операции загрузки AVX2 или две операции загрузки AVX-512 за цикл.
Хотя это не сильно улучшает производительность AVX-512, для приложений, которые не были обновлены для его использования, ядро теперь может выполнять вдвое больше операций загрузки, что должно повысить пропускную способность для устаревших приложений. Это должно пригодиться, особенно на ПК, где полное отсутствие поддержки AVX-512 со стороны Intel сделало AVX2 наименьшим общим знаменателем для многих программ.
Это не значит, что AVX-512 не получил внимания в этом поколении. Для тех, кто работает с ИИ-нагрузками на ЦП, Zen 6 теперь нативно поддерживает типы данных FP16. Ранее FP16 поддерживался, но требовал дополнения данных до FP32, что означало, что более низкая точность не давала особого преимущества в производительности. Теперь это не так в Zen 6.
И пока мы говорим об ускорении ИИ, Кларк отмечает, что Zen 6 удвоил количество конвейеров VNNI-INT8 с двух до четырех, и должен эффективно удвоить пропускную способность для поддерживающих его рабочих нагрузок.
Питание зверя
Хотя это не является строго частью ядра, процессоры Zen 6 от AMD также решают одну из самых больших асимметрий, связанных с их ядрами, оптимизированными по частоте и плотности.
Возвращаясь к Bergamo, выбор процессора Epyc с оптимизированной плотностью означал не только потерю тактовых частот, но и кэша. Каждый чиплет Zen 4c или Zen 5c содержал вдвое больше ядер, но тот же объем кэша L3.
С Zen 6 и Zen 6c вы можете жертвовать некоторыми тактовыми частотами, но кэш на ядро теперь составляет постоянные 4 МБ. Как мы обсуждали в подробном обзоре Venice в сентябре, каждый из восьми процессорных кристаллов содержит 12 или 32 ядра и соответственно 48 и 128 МБ.
Преимущество здесь в том, что пользователям не нужно беспокоиться о разных ISA или иерархиях кэша при оптимизации своих программных стеков под процессоры Epyc от AMD. То же самое нельзя сказать о процессорах Xeon от Intel.
Как мы уже намекали, производительные и энергоэффективные ядра Chipzilla используют разные микроархитектуры, ISA, иерархии кэша, тактовые частоты и даже по-разному группируют свои ядра. Это может создать реальные проблемы, если у вас есть рабочие нагрузки, использующие регистры с широкими векторами, такие как AVX-512, или ускорители, такие как AMX, которые будут отлично работать на P-ядрах Intel, но даже не запустятся на их E-ядрах.
Это, наряду с поддержкой SMT (Hyperthreading), от которой Intel пока отказалась, может помочь “Дому Zen” отвоевать еще большую долю рынка у своего давнего конкурента. ®
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Tobias Mann




