Железо

Новая статья: Тест AMD EPYC Rome. Часть 1: первое свидание

Астрологи объявили месяц AMD EPYC. Количество материалов о Rome увеличилось вдвое.

На более высоком уровне строение тоже принципиально не отличается — мультичип процессора набирается из тех же CCD, то есть блоков с ядрами и L3-кешем. Про внутреннее строение новых ядер всё прекрасно расписано в обзоре микроархитектуры Zen2. То есть в двух сокетах мы получаем до 128 ядер и до 256 потоков. Исключительно количественное отличие в том, что в CCD может быть восемь ядер, то есть в сумме на один сокет приходится до 64 ядер. Без них для двухсокетных систем придётся либо искусственно занижать число ядер, либо использовать CPU с меньшим их числом — до 48. Любопытный побочный эффект — Windows Server 2019 требует патчи для корректной работы APIC.

AMD EPYC Rome

AMD EPYC Rome

Возможны конфигурации как с меньшим числом CCD на процессор, так и с меньшим числом активных ядер в CCD. Так или иначе, выбранный подход позволяет более гибко варьировать число ядер в процессоре и системе. Ориентироваться можно на объём L3-кеша, который может достигать объёма 32 Мбайт на CCD: L3-блоки объёмом 16 Мбайт выделяются на каждые четыре ядра. Бывают варианты на 8, 6, 4 и 2 CCD. Есть даже экзотические варианты: 8 ядер с максимальной среди всех SKU базовой частотой + 128 Мбайт кеша. Если часть из этих четырёх ядер отключена, то размер L3 всё равно не меняется. 0 + 8 каналов памяти DDR4-3200 ECC. Состав I/O Die при этом остаётся единым для всех вариантов: 128 линий PCI-Express 4.

Из NVDIMM есть только поддержка типа N (по спецификации JEDEC), то есть таких модулей, у которых доступ извне есть только к DRAM, а флеш-массив не виден. Поддерживаются модули (L)RDIMM и 3DS, вплоть до «восьмиранговых» (2S4R) ёмкостью 256 Гбайт (с 16 Гбит чипами). В принципе, запустить систему можно даже с одним DIMM, но это странная затея сама по себе. AMD рекомендует равномерно заполнять все восемь каналов, не смешивая при этом тип и объём модулей. При числе модулей меньше восьми, а этот вариант оптимален лишь для CPU с 32 ядрами и менее, рекомендуется размещать их парами буквально наискосок друг от друга относительно I/O Die.

Конкретные значения зависят от частот памяти и ядер, типа модулей и сценария доступа. Внутреннюю топологию I/O Die разработчик не раскрывает, говоря лишь о том, что в среднем для всех восьми каналов одного сокета задержка обращения к памяти составляет около 100 нс. Отдельно стоит отметить, что при использовании двух DIMM на канал максимальная скорость падает с 3200 до 2933  MT/s, а при наборе 3DS-модулями 2S2R/2S4R — до 2666 MT/s. Формально все каналы равны и обеспечивают примерно равные задержки и пропускную способность для всех CCD, но они всё же разбиты на условные пары (“paired” internally) для оптимизации производительности PCI Express и других компонентов. К тому же контроллер памяти достаточно умён для того, чтобы оптимальным образом распределять запросы между разными рангами памяти.  Впрочем, те, кому действительно нужны большие объёмы, это может быть не так критично — для NUMA, например, который тоже улучшился в Rome.

Но первый скучный, так как касается совместимости между платформами EPYC первого и второго поколения. Есть и другой ограничитель производительности, даже два. На практике ставить новый процессор в старую плату не всегда имеет смысл, потому что PCI-E будет работать в режиме 3. На бумаге всё выглядит гладко — один и тот же Socket P3, полное совпадение по пинам. Более того, «штраф» за установку двух DIMM на канал суровей. 0, а скорость памяти не поднимется выше 2667 MT/s. Обратная совместимость «наборот» — установка старых процессоров в новые платы — в большинство случаев потребует смены BIOS, а часть возможностей Rome может оказаться недоступной.  В лучшем случае будет 2400 MT/s, в худшем — 1866.

Микроархитектура Zen2 Rome

Смотреть все изображения (12)

Смотреть все
изображения (12)

В таблице явно не обозначены, но, по словам инженеров, существуют процессоры с двумя базовыми уровнями тепловыделения. Второй, и самый очевидный, ограничитель — это TDP. Данные о TDP непосредственно IO Die не приводятся, но вот этот самый откат может «стоить» и пару десятков Вт, хотя всё очень сильно зависит от параметров всей системы. При меньшем значении происходит откат к вышеупомянутым характеристикам PCI-E и DDR4 первого поколения EPYC. Настроить конкретный уровень можно с точностью до 1 Вт. Для всех моделей указана не просто стандартная величина TDP, а дан диапазон, который может простираться как в сторону увеличения, так и уменьшения. Чем выше лимит и чем лучше соответственно охлаждение, тем дольше процессор сможет работать на турбочастотах.

Да, у нас есть 128 линий PCI-E 4. С PCI Express ситуация примерно та же, что и была. Да, у нас есть 128 линий PCI-E 4. 0 для одного сокета. Потому что по 64 линии (xGMI) от каждого CPU забирает Infinity Fabric. 0 для двух сокетов. Каждая группа поддерживают бифуркацию вплоть до x1, но суммарное число слотов на группу не должно быть больше 8. Все линии процессора разбиты на восемь групп по x16. В сумме получается до 32 SATA- или NVMe-накопителей x4 на сокет. Половина групп также поддерживает переключение 8 линий PCI-E в режим SATA3. Как и прежде, AMD упирает на то, что EPYC это SoC, а не просто процессор, поэтому он может работать без отдельного чипсета и ряда дополнительных компонентов, что должно положительно сказываться на стоимости платформы. Чисто технически есть ещё одна, так называемая WAFL-линия x1 для подключения BMC, но она в любом случае занята.

С приходом Xeon Scalable добавился ещё один аргумент, хотя и слабый — поддержка Intel Optane DCPMM в DIMM-формате. Фактически часть линий всё равно уйдёт на базовые адаптеры и контроллеры, на что в своё время упирала Intel, напоминая как минимум о нормальном сетевом контроллере в собственном чипсете и VROC (Virtual RAID on CPU). 0, который хоть и считается многими временным, переходным стандартом, всё равно позволит выжать больше даже из меньшего числа линий. Однако в Rome всё-таки полновесный PCI-E 4. На брифинге по Rome один из докладчиков вскользь упомянул про варианты с большим, чем 128, числом линий PCI-E. Так что для DCPMM вполне может найтись альтернатива из быстрых NVMe SSD вкупе с технологиями ScaleMP. Однако в этом случае часть линий забирается у шины Infinity Fabric, связывающей процессоры, поэтому её производительность будет хуже.  Для двухсокетных система действительно есть возможность получить 192 линии PCI-E.

В основе всё тот же AMD Secure Processor на базе ARM Cortex-A5, интегрированный непосредственно в CPU. Ещё одно важное обновление — как минимум для виртуализированных и облачных окружений — заключается в расширении возможностей шифрования оперативной памяти по алгоритму AES-128, влияние которого на производительность составляет, как утверждается, менее 1%. Ключевое отличие от прошлого поколения — увеличение числа ключей шифрования до 509. 

Однако в последнем случае требуется поддержка со стороны ОС. Впрочем, это нужно для для защиты с помощью Secure Encrypted Virtualization (SEV), а для простого полного шифрования всей оперативной памяти, то есть функции Secure Memory Encryption (SME), достаточно одного ключа. SEV же позволяет изолировать друг от друга гипервизор, виртуальные машины и контейнеры или их группы, а также отдельные приложения. Помимо прочего, есть и другие обновления касающиеся безопасности и производительности: аппаратные патчи против Spectre, расширенные управление и мониторинг памяти и L3-кеша (вплоть до отдельных CCD), а также некоторые другие инструкции. Особенностью реализации SEV является полная прозрачность, то есть (де-)шифровка на лету, для остальных аппаратных средств, обращающихся к  памяти посредством DMA.

19. На уровне ПО совместимость начинается как минимум с версии ядра Linux 4. Microsoft и VMWare должны подтянуться к выходу на рынок и пока дают бета-версии. Ключевые дистрибутивы также поддерживают новые процессоры. Ещё в LLVM Clang 9. С компиляторами ситуация чуть сложнее. В GCC полноценная оптимизация ожидается в версии 10 и что-то уже портировано в 9. 0 появилась первичная поддержка оптимизации для ядер Zen 2 (znver2). Что касается собственного оптимизирующего компилятора AMD, то релиз AOCC 2. 2, но в репозиториях они появятся не сразу. 0, «заточенный» под EPYC, намечен на момент официального анонса.

04 с ядром 5. На тестовой системе под кодовым именем Daytona, которая для EPYC Rome произведена Quanta (оригинал ссылки был спешно удалён ещё в прошлом году), использовалось по возможности наиболее общедоступная платформа: Ubuntu 19. 0-21-generic, компилятор GCC 8. 0. 0. 3. Шесть U. ОС была установлена на 2,5” SATA SSD Micron 1100 ёмкостью 256 Гбайт. На массиве была создана ФС xfs, смонтированная с параметрами по умолчанию (dafaults), а на неё положена директория /var. 2 NVMe-дисков Micron 9300 объёмом 3,84 Тбайт каждый были собраны в программный md-массив RAID-10. 8. В неё в свою очередь был установлен Phoronix Test Suite (PTS) текущей стабильной версии 8. 1, и все тесты работали именно в ней.

Параметр governor для теста был переведён в режим performance. В тестовой системе установлено два процессора AMD EPYC Rome 7742: 64 ядра, 128 потоков, 2,25/3,2 ГГц, L3-кеш 128 Мбайт, TDP выставлен на базовые 225 Вт. На каждый из 16 каналов памяти приходился один RDIMM-модуль Micron DDR4-3200 ECC ёмкостью 32 Гбайт, что в сумме даёт 512 Гбайт RAM. Авторазгон ядер хоть и не совсем корректно детектировался в ОС, всё же работал — те самые 3,2 ГГц на нескольких ядрах можно было увидеть. Первый показатель для тестового стенда, пожалуй, не очень важен, а второй нужен лишь для управления системой охлаждения. Отслеживать энергопотребление и температуры во время тестирования AMD не рекомендовалось, потому что это скорее отладочная платформа. Впрочем, в нашем случае это всё несущественно, так как физически сервер располагался в Мюнхене.

Любоваться, не иначе! Что же со всем этим добром делать? Она ближе к сегменту HPC, а не корпоративным серверам. Дело в том, что конфигурация 2 × 64 ядра, мягко говоря, не средняя. Если взять те же публично доступные Intel Xeon Platinum 8280(L), то это будет не сравнение, а надругательство. Сравнивать её попросту не с чем. Сама AMD предоставить систему 32-ядерными Rome пока что тоже не смогла, равно как и систему с EPYC 7601 первого поколения. Непубличные Cascade Lake AP серии 9200 Intel предоставить отказалась, но с ними всё равно сравнить цены не получилось бы, так как доступны они только в виде готовых систем тех же HPC-платформ.

Результаты тестовой платформы доступны здесь. Поэтому в качестве временного решения приведены некоторые сравнения результатов EPYC 7742 с публично доступными тестами Xeon 8280 от Phoronix, которые дают возможность примерной оценки соотношения сил. Впрочем, показатели тестовой системы практически идентичны результатам внутренних бенчмарков самой AMD, которые, увы, публиковать нельзя. Обратите внимание, что системы отличаются по железу и ПО. Отдельно стоить отметить, что как всегда, многое зависит от оптимизации. Да и соотношение с конкурентами примерно то же. Например, тот же Stream показывает значительно более высокие результаты благодаря только «правильному» компилятору AOCC.

И тем более интересно будет взглянуть на 32-ядерные модели. Да, EPYC 7742 зачастую выигрывает просто за счёт числа ядер. Либо AMD захочет всё-таки неплохо заработать на новинках, либо продолжит давление на конкурента. Прямо сейчас есть только одна, но очень важная неизвестная — цена для партнёров компании. Но полностью от них не избавит. Основным фокусом должно стать выстраивание экосистемы ПО, его перенос и адаптация к новой аппаратной платформе. На это у неё, надо полагать, есть около года-полутора. Слегка неожиданный анонс Cooper Lake может удержать производителей от поползновений в сторону конкурента просто потому, что серверный рынок достаточно инертен. Может! Фундамент для неё готов, ведь всё-таки есть что-то неуловимо приятное в сообщении очередного бенчмарка о подозрительно быстром завершении теста: мол, не может же такого быть. Теперь может. 

Продолжение следует…

S: если у вас есть пожелания по бенчмаркам, оставляйте их в комментариях.
P. P. S.: чтобы не пропустить новые материалы, подписывайтесь на нас в Я.Дзен, Telegram, Twitter и LinkedIn. P.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть