Обзор AMD EPYC Milan: дзен-эволюция на примере EPYC 7763 и EPYC 7543

 

EPYC Milan 7003, пожалуй, следует рассматривать как эволюцию EPYC Rome 7002. Важную, но всё-таки эволюцию. В этих чипах AMD сохранила общий MCM-подход, улучшив отдельные компоненты, кардинально, тем не менее, ничего не меняя. При взгляде «с высоты» перед нами всё те же 7-нм чипы с максимум 64 ядрами, 256 Мбайт L3-кеша, восемью каналами DDR4-памяти с поддержкой модулей на 3200 МГц и ёмкостью до 256 Гбайт, а также 128 линиями PCIe 4.0, которые в общем случае доступны и в односокетной, и в двухсокетной системах.

 AMD EPYC 7003 (Milan)

AMD EPYC 7003 (Milan)

В стартовом наборе все модели условно разбиты на три группы: процессоры с упором на производительность (высокие частоты и большой объём кеша L3 на ядро), с упором на плотность ядер (максимум ядер/потоков) и просто сбалансированные с точки зрения производительности и стоимости владения CPU. Всего на старте компания предложит 19 моделей, из которых четыре имеют односокетные варианты (P), четыре обладают повышенными частотами (F), а ещё одна выбивается из общего ряда числом ядер — 28 (это максимум, что может предложить сейчас Intel в Xeon Cascade Lake).

Также обращают на себя внимание две вещи. Во-первых, у старшего процессора 7763 в сравнении c 7742 при не столь уж высоком росте базовой и Boost-частоты базовый уровень TDP вырос до 280 Вт (а максимальный cTDP ещё выше). Во-вторых, младшим процессором теперь можно считать 16-ядерный 7313P с базовым TDP 155 В вместо 120-Вт 8-ядерного 7232P. В целом в 7003 наблюдается рост тактовых частот и тепловыделения. Если для кого-то даже младшая модель окажется слишком горячей, то можно будет взять что-то из 7002 и/или ограничить cTDP. Платформы сохраняют совместимость между Rome и Milan (но не с Naples, в чём смысла нет), однако это в большей степени остаётся на совести вендоров, а не AMD.

Можно поспекулировать на тему того, что сокращение стартового набора хотя бы отчасти вызвано производственными трудностями на TSMC, но в случае что EPYC, что Ryzen это не такая уж большая проблема, так как базовый строительный блок у них один — восьмиядерные CCX-комплексы Zen 3. Подробнее о нововведениях в Zen 3 можно прочитать в отдельном материале, а тут отметим некоторые ключевые особенности: IPC в среднем вырос на 19%, появилась дополнительная аппаратная защита от атак по сторонним каналам и, самое главное, «удвоение» самого комплекса, в котором теперь на 8 ядер приходится 32 Мбайт общего L3-кеша.

Наличие восьми CCX в одном CCD EPYC Milan позволяет легко формировать новые модели, подбирая число ядер, объём кеша на ядро, а также регулируя частоты и TDP. Именно поэтому не стоит удивляться 28-ядерному 7453 (4 CCX по 7 ядер, но с урезанным вдвое L3-кешем) или 8-ядерному 72F3 (8 CCX по 1 ядру) с просто фантастическим объёмом L3-кеша в 32 Мбайт на ядро и частотами 3,7/4,1 ГГц при TDP в 180 Вт. Это же даёт простор для дополнительной кастомизации чипов под нужды конкретных заказчиков. Ну и в целом более крупный кеш позволяет снизить задержки, ускорить работу требовательных к его объёму приложений, улучшает NUMA-взаимодействие.

Центральный чип IO Die тоже получил небольшие изменения, хотя и не такие существенные. На нём всё так же находятся спаренные контроллеры памяти, root-комплекс PCI 4.0 и контроллер шины Infinity Fabric, частота которой в случае Milan привязана к частоте памяти (DDR4-3200), что даёт небольшой прирост при обмене данными. Помимо традиционных режимов 1DPC/2DPC (DIMM Per Channel, модулей на канал) для всех восьми каналов для любых CPU и 1DPC для четырёх каналов для процессоров с L3 объёмом до 128 Мбайт, наконец появился режим 1DPC/2DPC для установки памяти в шесть каналов, а не во все восемь. Это позволяет соблюсти баланс между тратами на память и производительностью, получив лучшую равномерность доступа к памяти. Кроме того, такая конфигурация может пригодиться для высокоплотных или компактных систем. В Rome, для сравнения, был рекомендованный режим на 12 DIMM, который на самом деле предлагал 1DPC для нечётных по счёту каналов и 2DPC — для чётных. «Исключительными» были только 7F72 и 7552 с шестью CCX, для которых шесть же каналов были «родными».

Типы поддерживаемых модулей не изменились: RDIMM, LRDIMM, 3DS, NVDIMM-N. Максимум можно набрать до 4 Тбайт RAM на сокет при использовании восьмиранговых 256-Гбайт модулей LRDIMM-2933. AMD настоятельно рекомендует использовать официальное руководство по установке памяти (Memory Population Guide), где приведены корректные и сбалансированные конфигурации. Например, при использовании 4 или 6 DIMM на сокет становится очень важным даже то, в какие именно каналы они будут установлены.

Но в целом AMD рекомендует использовать все восемь каналов памяти, так как что у Rome, что у Milan существенно расширены возможности работы с ECC. При достаточном количестве каналов вместо стандартных слов 64 + 8 (64 бита на данные, 8 на избыточность) чтение/запись будут осуществляться словами 128 + 16 или даже 256 + 32 бита. При таком уровне избыточности, по словам компании, корректировать ошибки гораздо проще. Если базовая реализация ECC предусматривает лишь обнаружение многобитных ошибок (коррекция не гарантируется), то EPYC даже полностью выбитый чип x4 на одном из модулей памяти переживёт без потери данных, дав время перенести нагрузку на другой сервер и заменить дефектный модуль без простоя.

Дальнейшее развитие получили функции защиты. К полному шифрованию памяти SME, шифрованию SEV (для изоляции ВМ и гипервизора друг от друга) и шифрованию SEV-ES (для регистров после остановки ВМ) добавилось шифрование SEV-SNP (Secure Nested Paging), которое защищает гостей от вмешательства в их память уже со стороны гипервизора. Максимальное число ключей осталось прежним — 509. Эти функции важны для реализации конфиденциальных вычислений в виртуализированных и облачных средах.

Шифрованием по стандарту AES-128 занимается всё та же интегрированная в CPU отдельная Arm SoC, которая отвечает и за безопасность цепочки загрузки. Сами же ядра и так устойчивы — во всяком случае, AMD говорит, что не видела эксплойтов в «живой природе», — к нашумевшим атакам по сторонним каналам. Однако одно дополнение к защите всё же есть — это Shadow Stack (теневые стеки). Идея не нова, и оба вендора реализовали её в свежих ядрах, в Zen 3 и Willow Cove соответственно.

В маркетинговых материалах AMD, как и прежде, делает упор на безопасность, производительность и TCO (стоимость) при сравнении с Intel Xeon. В плане производительности при сравнении топ к топу, что, вообще говоря, может быть не совсем корректно, AMD на основании тестов SPECrate 2017 указывает на 106% более высокую производительность для облачных нагрузок (int_base) и HPC (fp_base) и на 117% — для корпоративных задач (SPECjBB 2015). В среднем сегменте 75F3 (32 ядра) быстрее 6258R (28 ядер) на 70% (fp_base). Что же касается TCO, то давайте аккуратно скажем, что всё зависит от конкретного проекта. К тому же стоимость процессоров далеко не всегда является самой крупной статьёй расходов. И даже аргумент про экономию на лицензиях постепенно становится менее значимым.

Технические характеристики и цены AMD EPYC 7003
Модель Ядра Потоки Базовая частота, ГГц Boost-частота, ГГц TDP, Вт cTDP Min, Вт cTDP Max, Вт Объём L3-кеша, Мбайт Каналы памяти DDR4 Частота памяти (1DPC) Линии PCIe 4.0 Цена (1Ku)
7763 64 128 2,45 3,50 280 225 280 256 8 3200 x128 $7 890
7713 64 128 2,00 3,675 225 225 240 256 8 3200 x128 $7 060
7713P 64 128 2,00 3,675 225 225 240 256 8 3200 x128 $5 010
7663 56 112 2,00 3,50 240 225 240 256 8 3200 x128 $6 366
7643 48 96 2,30 3,60 225 225 240 256 8 3200 x128 $4 995
7543 32 64 2,80 3,70 225 225 240 256 8 3200 x128 $3 761
7543P 32 64 2,80 3,70 225 225 240 256 8 3200 x128 $2 730
7513 32 64 2,60 3,65 200 165 200 128 8 3200 x128 $2 840
7453 28 56 2,75 3,45 225 225 240 64 8 3200 x128 $1 570
7443 24 48 2,85 4,00 200 165 200 128 8 3200 x128 $2 010
7443P 24 48 2,85 4,00 200 165 200 128 8 3200 x128 $1 337
7413 24 48 2,65 3,60 180 165 200 128 8 3200 x128 $1 825
7343 16 32 3,20 3,90 190 165 200 128 8 3200 x128 $1 565
7313 16 32 3,00 3,70 155 155 180 128 8 3200 x128 $1 083
7313P 16 32 3,00 3,70 155 155 180 128 8 3200 x128 $913
F-серия (оптимизация по частотам и объёму L3-кеша)
75F3 32 64 2,95 4,00 280 225 280 256 8 3200 x128 $4 860
74F3 24 48 3,20 4,00 240 225 240 256 8 3200 x128 $2 900
73F3 16 32 3,50 4,00 240 225 240 256 8 3200 x128 $3 521
72F3 8 16 3,70 4,10 180 165 200 256 8 3200 x128 $2 468

EPYC 7003 по грубым прикидкам стали в среднем на пару сотен долларов дороже, чем 7002, в партиях от 1 тыс. шт. при равном числе ядер, если сравнивать с прошлогодними ценами на Rome. Но общая политика AMD сохранилась: цена зависит от ядер/частоты/кеша, а во всём остальном чипы идентичны; односокетные P-версии дешевле двухсокетных версий где-то на треть; F-версии с повышенными частотами и всегда максимальным объёмом L3-кеша (256 Мбайт, то есть всегда с 8 CCX) заметно дороже других модификаций с тем же числом ядер. При этом односокетные платформы с EPYC смотрятся интереснее двухсокетных платформ Intel.

Впрочем, всё это верно до тех пор, пока мы не увидим Ice Lake-SP, которые по ряду параметров подтянутся к EPYC. Если учесть их двухсокетность, принципиальным отличием от AMD будет поддержка AVX-512 (с DL Boost) и Optane PMem 200 — обе возможности востребованы далеко не всеми приложениями и нагрузками, хотя Intel весьма активно выстраивает именно программно-аппаратную платформу. И это касается не только CPU и памяти. AMD, впрочем, тоже не сидела сложа руки и за полтора года с выхода Rome значительно нарастила число ISV-партнёров и валидированных решений.

В чём AMD пока отстаёт от Intel, так это в своевременной подготовке средств разработки и платформ: ядра Linux, GCC, LLVM и сопутствующих библиотек. Соответствующие патчи попадают в основные ветки проектов довольно поздно, что приводит к непопаданию их в ближайшие мажорные релизы основных дистрибутивов. Для, скажем, гиперскейлеров или HPC это не проблема, так как у них есть возможность самостоятельно сопровождать ядра. А средний пользователь может получить прирост производительности в 5-6% с обновлением до ядра Linux 5.11, которое вышло в феврале, но добралось ещё не до всех дистрибутивов. При этом продукция Zen 3 присутствует уже не первый месяц, а новые EPYC отгружаются с IV квартала прошлого года. Есть надежда, что скоро ситуация выправится.

Но это всё равно малая часть того, что ещё предстоит сделать. Потому что с аппаратной-то частью у AMD проблем нет — на текущий момент EPYC 7763, по мнению компании, является самым быстрым x86-64 процессором, во всяком случае по «чистой» производительности. Чтобы можно было убедиться в этом, AMD дала удалённый доступ к референсной двухсокетной платформе DAYTONA от Quanta. Это ровно та же система, что использовалась полтора года назад для теста EPYC Rome. Для работы с Milan ей нужны только обновления прошивок и BIOS/UEFI.

Конфигурация накопителей в этот раз была чуть победнее, поэтому тесты дисковой подсистемы были исключены. Для ОС использовался 256-Гбайт SATA SSD Micron 1100 (MTFDDAK256TBN) с ext4 и настройками по умолчанию. Основной накопитель, с которого и запускались все тесты, — это, судя по идентификатору (HUSMR7632BDP3M1), Western Digital Ultrastar DC ME200: NVMe, PCIe 3.0 x4, 3 Тбайт. На нём была развёрнута xfs с настройками по умолчанию и смонтирован /var, где хранились все тестовые файлы.

Память была набрана модулями Kingston KSM32RD4/32MEI: 32 Гбайт RDIMM ECC DDR4-3200. Для всех тестов в рамках Phoronix Test Suite 10.2.2 (PTS) для двух EPYC 7763 суммарно был установлен 1 Тбайт, то есть 2DPC в режиме DDR4-2933. Хотя, надо отметить, небольшой дополнительный стресс-тест показал, что и в режиме DDR4-3200 она тоже может успешно работать. Для двух 7543 и PTS: 512 Гбайт, то есть 1DPC и DDR4-3200. Из общего пула 8 Гбайт «отъедает» пара Mellanox ConnectX-4 Lx (MT27710).

Отдельно приведём результаты HPL (High-Performance Linpack) 2.3 и Stream 5.10, так как они были собраны вручную инженером AMD с использованием компилятора AOCC 3.0, который должен выйти вместе с официальным анонсом EPYC 7003, и некоторыми библиотеками AMD (AOCL, как пример), а также с дополнительными настройками платформы. Простор для оптимизаций тут немалый, но и время на это тоже требуется. Например, в BIOS есть интересный параметр Performance Determinism. В режиме по умолчанию c NPS1 он имеет значение Performance, то есть в пределах заданного теплопакета CPU балансирует все свои 8 CCX на примерно одинаковую производительность. Однако этот параметр можно выставить в значение Power и включить NPS4 — каждый кристалл будет работать на своём максимуме производительности, не ориентируясь на соседей.

Stream 5.1, Мбайт/с
2 × EPYC 7763 2 × EPYC 7543
Copy 339627,3 319521,6
Scale 335561,8 318395,5
Add 337742,8 322929,4
Triad 332141,0 317128,1

Для HPL был отключен SMT, использован режим NPS4 (4 NUMA-узла на сокет) и память в 1DPC. Для двух 7763 лучший показатель производительности составил 3,184 Тфлопс, а для двух 7543 — 2,2044 Тфлопс. По данным самой AMD, для 7763 пик составляет 4,097 Тфлопс. Угадаете, с чьим компилятором можно достичь такого результата? В тестах Stream — результаты даны в таблице выше — память работала в режиме DDR4-3200 и с NPS1. В принципе, можно получить ещё +10-15% к скорости, включив режим NPS4 и запустив по отдельной копии в каждом домене. Для Stream triad AMD приводит цифру в 371,5 Гбайт/с для EPYC 75F3.

Перед тем как перейти к основным тестам, сделаем небольшое сравнение с результатами EPYC 7742. Надо учитывать, что на тот момент была та же ситуация, что сейчас, — ядро, библиотеки и компиляторы не имели должной оптимизации. В качестве компромиссного варианта пришлось сделать их в Ubuntu 20.04, так как в более новой версии уже слишком много тестов не собирается из-за смены системных библиотек. Прирост от поколения к поколению на нашем наборе бенчмарков составил в среднем 13,2% — полные результаты приведены в отчёте. Если получится, то через пару-тройку дней после выхода материала добавим тесты 7742 на основной платформе.

А таковой была выбрана актуальная Ubuntu 20.10 Server с ядром Linux 5.8.0-44-generic и компилятором GCC 10.2.0. Параметр governor был принудительно выставлен в performance. Со стороны BIOS были включены ACPI Auto Configuration и SMT, а CSM — отключен. Значения TDP не менялись. Прочие параметры оставлены по умолчанию (например, NPS1). Набор тестов охватывает различные типы нагрузок и включает, по возможности, наиболее свежие версии бенчмарков, доступных в PTS.

Полный отчёт с результатами доступен в PDF. Любопытно, что в среднем по итогам они оказались примерно равны. Естественно, в многопоточных нагрузках 64-ядерный процессор быстрее 32-ядерного, но и в однопоточной он не всегда и не везде так уж сильно отстаёт. Из примечательных результатов можно отметить ACES DGEMM, NAS Parallel Benchmarks, Blender, OpenSSL или John The Ripper, которые практически линейно масштабируются с ростом числа ядер. Из явных аномалий — LAMMPS и Cpuminer-Opt.

Впрочем, сами по себе эти тесты не так интересны. Этот же набор планируется использовать и для тестирования Intel Xeon Ice Lake-SP, когда (и если) появится такая возможность. А пока можно сравнить с другими результатами на OpenBenchmarking. Например, с Ampere Altra или с большим сборным тестом от Phoronix с Ubuntu 20.04, но с ядром Linux 5.8. Учтите, что и там и там пересекаются только небольшие подмножества тестов. Первый набор совсем маленький, но разнообразный, а во втором представлены в основном «тяжёлые» приложения.

Несмотря на то, что переход от Rome к Milan принёс гораздо меньше изменений, чем от Naples к Rome, Intel со стороны «кремния» всё равно пока противопоставить нечего. Ключевое слово тут именно «пока» — выход Ice Lake-SP не за горами, и мы пока не знаем, какая у него производительность. А грядущие Sapphire Rapids тоже получат многокристальную компоновку, которая доказала свою жизнеспособность, эффективность и гибкость. И с текущими технологическими нормами Milan, судя по всему, подбирается к разумному пределу возможностей.

Не стоит, впрочем, забывать, что процессор — важная, но не единственная часть платформы. И даже его цена зачастую не является определяющей в итоговой стоимости решения. Заказчикам всё более интересен инструмент для решения их задач и всё менее — что у него внутри. AMD сумела «продать» EPYC как «белым» брендам железа, так и OEM/ODM, а также многим ISV и постепенно пробирается во всё большее число ниш, но о реальной победе пока говорить очень рано. Если же смотреть более широко, то сейчас наступает эпоха комплексных программно-аппаратных решений. AMD, NVIDIA и Intel, каждый по-своему, уже создают их.

Чтобы не пропустить новые материалы, подписывайтесь на нас в Я.Дзен, Telegram, Twitter и LinkedIn.

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER. | Можете написать лучше? Мы всегда рады новым авторам.
Постоянный URL: https://servernews.ru/1034705
Система Orphus