Гарима Кочхар, Дипти Черлопалле, Джошуа Уидж. Лаборатория HPC and AI Innovation Lab, октябрь 2019 г.
Неприменимо
В современном мире HPC процессор AMD EPYC последнего поколения под кодовым названием Rome вряд ли нуждается в представлении. В течение последних нескольких месяцев мы оценивали Rome-системы в лаборатории HPC and AI Innovation Lab , а недавно компания Dell Technologies анонсировала серверы, поддерживающие эту процессорную архитектуру. В этом первом блоге из серии Rome обсуждается процессорная архитектура Rome, как ее можно настроить для достижения производительности HPC, а также представлена начальная производительность в микробенчмарках. В последующих блогах будет описываться производительность приложений в таких областях, как CFD, CAE, молекулярная динамика, моделирование погоды и другие приложения.
Rome — это процессор AMD EPYC 2-го поколения, обновляющий Naples 1-го поколения. Мы обсуждали Неаполь в этом блоге в прошлом году.
Одно из самых больших архитектурных отличий между Неаполем и Римом, которое является преимуществом HPC, — это новый кристалл ввода-вывода в Риме. В Rome каждый процессор представляет собой многочиповый корпус, включающий до 9 микросхем , как показано на рис. 1. Имеется один центральный 14-нм кристалл ввода-вывода, который содержит все функции ввода-вывода и памяти: контроллеры памяти, каналы фабрики Infinity в разъеме и межразъемные соединения, а также PCI-e. В каждом разъеме имеется восемь контроллеров памяти, которые поддерживают восемь каналов памяти под управлением DDR4 со скоростью 3200 млн транзакций в секунду. Однопроцессорный сервер может поддерживать до 130 каналов PCIe Gen4. Двухпроцессорная система может поддерживать до 160 каналов PCIe Gen4.
(Рис. 1. Многокристальный корпус Rome с одним центральным кристаллом ввода-вывода и до восьми ядерных кристаллов)
Центральный кристалл ввода-вывода окружают до восьми 7-нм ядерных чиплетов. Микросхема ядра называется кристаллом Core Cache или CCD. Каждая CCD имеет ядра процессора на базе микроархитектуры Zen2, кэш L2 и кэш L3 32 МБ. Сама CCD имеет два комплекса кэш-памяти ядра (CCX), каждый CCX имеет до четырех ядер и 16 МБ кэш-памяти L3. На рис. 2 показан CCX.
(Рис. 2 . CCX с четырьмя ядрами и общей кэш-памятью третьего уровня 16 Мбайт)
Разные модели ЦП Rome имеют разное количество ядер, но все они оснащены одним центральным кристаллом ввода-вывода.
На верхнем уровне находится 64-ядерная модель процессора, например, EPYC 7702. Вывод lstopo показывает нам, что этот процессор имеет 16 CCX на сокет, каждый CCX имеет четыре ядра, как показано на рисунках 3 и 4, что дает 64 ядра на сокет. 16 МБ L3 на CCX, т. е. 32 МБ L3 на CCD, дает этому процессору в общей сложности 256 МБ кэш-памяти L3. Обратите внимание, однако, что общий объем кэша третьего уровня в Rome используется не всеми ядрами. Кэш третьего уровня объемом 16 МБ в каждой CCX является независимой и используется только ядрами CCX, как показано на рис. 2.
24-ядерный процессор, такой как EPYC 7402, имеет 128 МБ кэш-памяти третьего уровня. На рисунках 3 и 4 показано, что эта модель имеет три ядра на CCX и 8 CCX на процессор.
(Рис. 3 и 4 lstopo для 64-ядерного и 24-ядерного процессоров)
Независимо от количества ПЗС-матриц, каждый процессор Rome логически разделен на четыре квадранта , в каждом из которых ПЗС-матрицы распределены максимально равномерно, а в каждом из них по два канала памяти. Центральный кристалл ввода-вывода логически поддерживает четыре квадранта сокета.
Центральный кристалл ввода-вывода в Риме помогает улучшить задержки памяти по сравнению с теми, которые были измерены в Неаполе. Кроме того, этот параметр позволяет настроить ЦП в качестве одного домена NUMA, обеспечивая равномерный доступ к памяти для всех ядер в сокете. Это описано ниже.
Четыре логических квадранта процессора Rome позволяют разделить ЦП на разные домены NUMA. Этот параметр называется NUMA на сокет или NPS.
Там, где это возможно, для высокопроизводительных вычислений рекомендуется использовать NPS4, поскольку он обеспечивает наилучшую пропускную способность памяти, минимальную задержку памяти, а наши приложения, как правило, поддерживают NUMA. Если NPS4 недоступен, рекомендуется использовать сервер NPS с самым высоким значением, поддерживаемый данной моделью ЦП: NPS2 или даже NPS1.
Учитывая множество вариантов NUMA, доступных на платформах на базе Rome, BIOS PowerEdge позволяет использовать два различных метода перечисления ядер в перечислении MADT. Линейное перечисление ядер по порядку, заполняя один разъем CCX, CCD, перед переходом к следующему. В системе с 32-ядерным процессором ядра с 0 по 31 будут находиться на первом разъеме, а ядра 32–63 — на втором. Перечисление по циклическому перебору нумерует ядра в регионах NUMA. В этом случае на первом сокете будут четные жилы, на втором — нечетные. Для простоты мы рекомендуем линейное перечисление для HPC. Пример линейного перечисления ядер на двухпроцессорном сервере 64c, настроенном в NPS4, приведен на рис. 5. На рисунке каждый блок из четырех ядер — это CCX, каждый набор из восьми непрерывных ядер — CCD.
(Рис. 5 . Линейное перечисление ядер в двухпроцессорной системе, 64 ядра на процессор, конфигурация NPS4 в модели с 8 ЦП CCD)
Еще один параметр BIOS, характерный для Rome, называется Preferred IO Device. Это важный регулятор пропускной способности InfiniBand и скорости передачи сообщений. Это позволяет платформе приоритизировать трафик для одного устройства ввода-вывода. Этот параметр доступен как на однопроцессорных, так и на двухпроцессорных платформах Rome, и устройство InfiniBand на платформе необходимо выбрать в качестве предпочтительного устройства в меню BIOS, чтобы обеспечить полную скорость передачи сообщений, когда все ядра ЦП активны.
Как и Неаполь, Rome также поддерживает технологию Hyper-Threadingили логический процессор. Для HPC мы оставим этот параметр отключенным, но некоторые приложения могут выиграть от включения логического процессора. Следите за нашими последующими блогами, посвященными прикладным исследованиям в области молекулярной динамики.
Как и в Неаполе, в Риме CCX также разрешен в качестве домена NUMA. При выборе этого параметра каждый CCX предоставляется как узел NUMA. В системе с двухпроцессорными процессорами с 16 CCX на процессор этот параметр будет предоставлять 32 домена NUMA. В этом примере каждый разъем имеет 8 CCD, т.е. 16 CCX. Каждый CCX можно включить в качестве собственного домена NUMA, что даст 16 узлов NUMA на сокет и 32 в двухпроцессорной системе. Для HPC рекомендуется оставить CCX в качестве домена NUMA со значением по умолчанию «Disabled». Ожидается, что включение этого параметра поможет виртуализированным средам.
Как и в Неаполе, Rome позволяет установить систему в режим детерминизма производительности или детерминизма по производительности . При детерминизме производительности система работает с частотой, ожидаемой для модели ЦП, что снижает вариативность на нескольких серверах. При детерминизме по мощности система работает при максимальной доступной НТМ модели ЦП. Это увеличивает вариативность производственного процесса, позволяя некоторым серверам работать быстрее других. Все серверы могут потреблять максимальную номинальную мощность ЦП, что делает энергопотребление детерминированным, но допускает некоторое различие производительности на нескольких серверах.
Как и следовало ожидать от платформ PowerEdge, в BIOS есть мета-параметр под названием «Профиль системы». При выборе профиля системы, оптимизированного для производительности , будет включен режим Turbo Boost, отключены C-состояния и ползунок детерминизма установлен в положение Детерминизм по мощности, что оптимизирует производительность.
Многие из наших читателей, возможно, сразу же перешли к этому разделу, поэтому мы сразу же приступим к делу.
В лаборатории HPC and AI Innovation Lab мы создали Rome-кластер из 64 серверов, который назвали Minerva. Помимо однородного кластера Minerva, у нас есть несколько других образцов процессора Rome, которые мы смогли оценить. Наш испытательный стенд описан в Табл.1 и Табл.2.
(Табл. 1. Модели процессоров Rome, оцененные в этом исследовании)
ЦП | Ядер на процессор | Config | Базовая тактовая частота | Расчетная тепловая мощность |
---|---|---|---|---|
7702 | 64С | 4 цента за CCX | 2,0 ГГц | 200W |
7502 | 32с | 4 цента за CCX | 2,5 ГГц | 180W |
7452 | 32с | 4 цента за CCX | 2,35 ГГц | 155 Вт |
7402 | 24с | 3 цента за CCX | 2,8 ГГц | 180W |
(Табл. 2 . Стенд для испытаний)
Компонент | Описание |
---|---|
Server | PowerEdge C6525 |
Процессор | Как показано в табл. 1, двухпроцессорные |
Модули | 256 Гбайт памяти DDR4, 16 x 16 Гбайт, 3200 млн транзакций в секунду |
Соединение | ConnectX-6 Mellanox Infini Band HDR100 |
Операционная система | Red Hat Enterprise Linux 7.6 |
Ядро | 3.10.0.957.27.2.e17.x86_64 |
Диск | Модуль M.2 твердотельного накопителя SATA, 240 Гбайт |
Тесты пропускной способности памяти на Rome представлены на рисунке 6, эти тесты выполнялись в режиме NPS4. Мы измерили пропускную способность памяти ~270–300 Гбайт/с на нашем двухпроцессорном сервере PowerEdge C6525 при использовании всех ядер сервера на четырех моделях ЦП, перечисленных в таблице 1. Когда на CCX используется только одно ядро, пропускная способность системной памяти на ~9-17% выше, чем у всех ядер.
Для большинства рабочих нагрузок HPC либо полностью подписаны все ядра в системе, либо центры HPC работают в режиме высокой пропускной способности с несколькими заданиями на каждом сервере. Следовательно, пропускная способность памяти на все ядра является более точным представлением пропускной способности памяти и пропускной способности памяти для каждого ядра системы.
На рисунке 6 также показана пропускная способность памяти, измеренная на платформе EPYC Naples предыдущего поколения, которая также поддерживала восемь каналов памяти на процессор, но работала со скоростью 2667 млн транзакций в секунду. Платформа Rome обеспечивает на 5–19% более высокую общую пропускную способность памяти, чем платформа Naples, и это в основном связано с более высокой скоростью памяти 3200 МТ/с. Даже при 64 ядер на процессор система Rome может обеспечить скорость более 2 Гбит/с на ядро.
Сравнивая различные конфигурации NPS, можно увидеть, что пропускная способность памяти NPS4 выше на ~13% по сравнению с NPS1, как показано на рис. 7.
(Рис. 6 . Пропускная способность двухпроцессорной памяти триады NPS4 STREAM)
(Рис. 7 . NPS1, NPS2 и NPS 4. Пропускная способность памяти)
На рисунке 8 показана пропускная способность одноядерного InfiniBand для однонаправленного и двунаправленного тестирования. В тестовой среде использовался HDR100, работающий на скорости 100 Гбит/с, и на графике показана ожидаемая производительность со скоростью линии для этих тестов.
Рис. 8 . Пропускная способность InfiniBand (одноядерная система)
Рис. 9 . Скорость передачи сообщений InfiniBand (все ядра)
Затем были проведены тесты скорости передачи сообщений с использованием всех ядер сокета на двух тестируемых серверах. Если в BIOS включен параметр Preferred IO и адаптер ConnectX-6 HDR100 настроен в качестве предпочтительного устройства, то скорость передачи сообщений для всех ядер значительно выше, чем в случае, когда приоритетный ввод-вывод не включен, как показано на рис. 9. Это иллюстрирует важность этого параметра BIOS при настройке для высокопроизводительных вычислений и особенно для масштабируемости приложений с несколькими узлами.
Микроархитектура Rome может выдавать 16 DP FLOP/такт, что вдвое больше, чем в Неаполе, где этот показатель составлял 8 FLOPS/такт. Это дает Rome в 4 раза больше теоретических пиковых FLOPS по сравнению с Неаполем, в 2 раза за счет расширенных возможностей вычислений с плавающей запятой и в 2 раза больше ядер (64c против 32c). На рис. 10 показаны результаты измерений HPL для четырех протестированных моделей процессоров Rome, а также наши предыдущие результаты для системы из Неаполя. Эффективность Rome HPL выражается в процентах над столбцами на графике и выше для моделей ЦП с более низкой НТМ.
Тесты проводились в режиме детерминизма по мощности и показали разницу в производительности на уровне ~5% на 64 серверах с идентичной конфигурацией.
(Рис. 10 . HPL одного сервера в NPS4)
Затем были выполнены многоузловые HPL-тесты, результаты которых показаны на рисунке 11. Эффективность HPL для EPYC 7452 остается выше 90% при масштабе из 64 узлов, но снижение эффективности со 102% до 97% и обратно до 99% требует дополнительной оценки
(Рис. 11 . Многоузловой HPL, двухпроцессорный EPYC 7452 с поддержкой HDR100 InfiniBand)
Первоначальные исследования производительности серверов на базе Rome показывают ожидаемую производительность для нашего первого набора эталонных тестов HPC. Настройка BIOS важна для достижения наилучшей производительности, и параметры настройки доступны в нашем профиле рабочей нагрузки BIOS HPC, который можно настроить на заводе или с помощью утилит управления системами Dell EMC.
Лаборатория HPC and AI Innovation Lab располагает новым 64-серверным кластером PowerEdge Minerva, расположенным в Риме. Следите за последующими статьями в блогах, в которых описываются исследования производительности приложений в нашем новом кластере Minerva.