Статья написана Варуном Бава, Савитой Париком и Ашишем К. Сингхом из лаборатории HPC and AI Innovation Lab в апреле 2019 г
В связи с выпуском процессоров семейства Intel Xeon® Scalable второго поколения (архитектура под кодовым названием Cascade Lake) компания Dell EMC обновила серверы PowerEdge 14-го поколения, чтобы получить преимущества от увеличенного числа ядер и более высокой скорости памяти, что положительно сказывается на приложениях HPC.
В этом блоге представлен первый набор результатов и обсуждается влияние различных параметров настройки BIOS, доступных на сервере Dell EMC PowerEdge C6420 с новейшими процессорами Intel Xeon® Cascade Lake для некоторых эталонных тестов и приложений HPC. Ниже приведено краткое описание процессора Cascade Lake, параметров BIOS и приложений HPC, используемых в данном исследовании.
Cascade Lake является преемником Skylake от Intel. Процессор Cascade Lake поддерживает до 28 ядер, шесть каналов памяти DDR4 со скоростью до 2933 МТ/с. Как и Skylake, Cascade Lake поддерживает дополнительные возможности векторизации с набором инструкций AVX512, обеспечивающим 32 DP FLOP за цикл. Cascade Lake представляет
инструкции векторной нейронной сети (VNNI), которые ускоряют выполнение рабочих нагрузок искусственного интеллекта и глубинного обучения, таких как классификация изображений, распознавание речи, языковой перевод, обнаружение объектов и многое другое. VNNI также поддерживает 8-разрядные инструкции для ускорения
выполнения логических выводов.
Cascade Lake включает
в себя аппаратные средства защиты от некоторых
уязвимостей сторонних каналов. Ожидается, что это может повысить производительность рабочих нагрузок хранения данных. Узнайте о будущих исследованиях от
Innovation Lab.
Поскольку процессоры Skylake и Cascade Lake совместимы с разъемами, ручки настройки процессора в BIOS этих поколений одинаковы. В этом исследовании были изучены следующие варианты настройки BIOS, аналогичные работе, опубликованной ранее
на Skylake.
Параметры процессора
- Предвыборка смежных строк кэша: Механизм предварительной выборки смежных линий кэша допускает автоматическую аппаратную предвыборку, он работает без вмешательства программиста. Если этот параметр включен, он помещает две 64-байтные строки кэша в 128-байтный сектор независимо от того, была ли запрошена дополнительная строка кэша или нет.
- Аппаратное устройство предвыборки: Это позволяет избежать задержек, загружая данные в кэш до того, как они понадобятся. Пример. Для предварительной выборки данных из основной памяти в кэш L2 намного раньше использования с инструкцией предварительной выборки L2, а затем предварительной выборки данных из кэша L2 в кэш L1 непосредственно перед использованием с инструкцией предварительной выборки L1. В этом случае, когда установлено значение enabled, процессор будет предварительно выбирать дополнительную строку кэша для каждого запроса памяти.
- SNC (кластер Sub-Numa): Включение SNC аналогично разделению одного сокета на два домена NUMA, каждый из которых содержит половину физических ядер и половину памяти сокета. Если вам это знакомо, то она аналогична по полезности варианту Cluster-on-Die , который был доступен в процессорах Intel Xeon E5-2600 v3 и v4. SNC реализована иначе, чем COD, и эти изменения улучшают удаленный доступ к сокетам в Cascade Lake по сравнению с предыдущими поколениями, в которых использовался вариант Cluster-on-Die. На уровне операционной системы двухпроцессорный сервер с включенной SNC будет отображать четыре домена NUMA. Два домена будут находиться ближе друг к другу (на одном сокете), а два других — на большем расстоянии, через UPI до удаленного сокета. Это можно увидеть с помощью таких инструментов ОС: numactl –H и проиллюстрировано на рисунке 1.
Рис. 1. Макет узлов NUMA
Профили системы:
Системные профили — это мета-параметры, которые, в свою очередь, задают несколько параметров BIOS, ориентированных на управление производительностью и энергопотреблением, таких как
режим Turbo,
C1E,
управление Pstate, частота Uncore и т. д. В данном исследовании сравниваются различные профили систем:
- Производительность
- Производительностьна ваттDAPC
- Производительностьна WattOS
Мы использовали два эталонных теста HPC и два приложения для высокопроизводительных вычислений, чтобы понять влияние этих параметров BIOS на производительность Cascade Lake. Конфигурации серверов и приложений HPC, используемые в данном исследовании, описаны в Таблице 1 и Таблице 2.
Приложения |
Домен |
Версия |
Ориентиром |
Высокопроизводительный пакет Linpack (HPL) |
Вычисления - Решение плотной системы линейных уравнений |
От Intel MKL — 2019 Update 1 |
Размер проблемы 90%, 92% и 94% от общего объема памяти |
Поток |
Пропускная способность памяти |
5.4 |
Триады |
WRF |
Исследование и прогнозирование погоды |
3.9.1 |
Конус 2,5 км |
Свободное владение® ANSYS® |
Гидродинамика |
19.2 |
Ice_2m, Combustor_12m, Aircraft_wing_14m Exhaust_System_33m |
Таблица 1. Области применения и эталонные тесты
Компоненты |
Описание |
Server |
Сервер PowerEdge C6420 |
Процессор |
® ЦП Intel Xeon® Gold 6230 @ 2.1 ГГц, 20 ядер |
Модули |
192 Гбайт — 12 x 16 Гбайт памяти DDR4, 2933 млн транзакций в секунду |
Операционная система |
Red Hat Enterprise Linux 7.6Red Hat Enterprise Linux 7.6 |
Ядро |
3.10.0-957.el7.x86_64 |
Компилятора |
Кластер Intel Parallel Studio Edition_2019_Update_1 |
Таблица 2. Конфигурация сервера
Все результаты, показанные здесь, основаны на тестировании одного сервера; Производительность на уровне кластера будет зависеть от производительности одного сервера. Для сравнения производительности использовались следующие метрики:
- Stream (Поток) — оценка триады в соответствии с эталонным тестом потока.
- HPL – GFLOP в секунду.
- Fluent — рейтинг решателя по данным Fluent.
- WRF – Средний шаг по времени, рассчитанный за последние 719 интервалов для конуса 2,5 км
Эталонные тесты и результаты применения
Аббревиатуры обозначений графиков:
Профили системы:
Perf — производительность ОС — производительностьPerWattOS DAPC — производительностьPerWattDAPC
Sub-NUMA Объединение в кластер: SNC = 0 (SNC = отключено): SNC = 1(SNC = Включено: Отформатировано как полосатое в графиках)
SW – Программное устройство предвыборки: SW = 0 (SW = отключено) SW = 1 (SW = включено)
Рис. 2. Высокопроизводительный пакет LinPack
На рисунке 2 сравнивается результат HPL с размером проблемы = 90%, т.е. N=144476 для различных вариантов BIOS. На графике показаны абсолютные гигафлопсы, полученные при использовании HPL в различных конфигурациях BIOS. Полученные гигафлопсы отображаются на оси y, чем выше, тем лучше.
Ниже приведены наблюдения из графика:
- Разница в производительности HPL менее 1% из-за предварительной выборки программного обеспечения.
- Нет существенного влияния SNC на производительность HPL (на 0,5% лучше при SNC=Disabled).
- Профиль производительности системы на 6% выше по сравнению с ОС и DAPC.
Рис. 3. Поток
На рис. 3 приведено сравнение результатов STREAM в различных конфигурациях BIOS.
На графике показана пропускная способность памяти в гигабайтах в секунду, полученная при выполнении STREAM Triad. Полученная пропускная способность памяти (Гбайт/с) отображается на оси Y. Чем выше показатель, тем лучше. Конфигурация BIOS, связанная с конкретными значениями гигабайт в секунду, отображается на оси x.
Ниже приведены наблюдения из графика:
- Пропускная способность памяти выше на 3% при включенной SNC=.
- Незначительное отклонение производительности из-за предварительной выборки программного обеспечения в полосе пропускания памяти STREAM.
- Отсутствие отклонений между профилями системы.
Рис. 4. Пропускная способность памяти — SNC
На рисунке 4 показана оценка пропускной способности памяти триады потоков в такой конфигурации. Пропускная способность полной системной памяти ~220 ГБ/с. Когда 20 ядер локального сокета обращаются к локальной памяти, пропускная способность памяти составляет ~ 109 ГБ/с, что составляет половину полной пропускной способности системы. Половина этой пропускной способности, ~56 Гбайт/с, — это пропускная способность памяти 10 потоков на одном узле NUMA, обращающихся к локальной памяти, и на одном узле NUMA, принадлежащих другому узлу NUMA в том же сокете. Пропускная способность памяти снижается на 42% до ~33 ГБ/с, когда потоки обращаются к удаленной памяти по каналу QPI на удаленном сокете. Это говорит о том, что в режиме SNC, когда данные не являются локальными, пропускная способность значительно снижается.
Рис. 5. WRF
На рисунке 5 сравнивается результат WRF для различных вариантов BIOS, используется набор данных conus2.5km с файлом по умолчанию "namelist.input".
На графике показан абсолютный средний временной шаг в секундах, полученный при выполнении набора данных WRF-conus2.5km в различных конфигурациях BIOS. Полученный средний временной шаг построен на оси y, чем меньше, тем лучше. Относительные профили, связанные с конкретными значениями среднего временного шага, строятся на оси x.
Ниже приведены наблюдения из графика:
- На 2% выше производительность при SNC=Enabled.
- Нет различий в производительности для включенной и отключенной предварительной выборки программного обеспечения.
- Профиль производительности на 1% лучше, чем профили PerformancePerWattDAPC
На рисунках с 6 по 9 показан рейтинг решателя, полученный при работе Fluent- с набором данных Ice_2m, Combustor_12m, Aircraft_Wing_14m и Exhaust_System_33m соответственно. Полученный рейтинг решателя отображается на оси y, чем выше, тем лучше. Относительные профили, связанные с конкретными значениями среднего времени, строятся на оси x.
Ниже приведены общие наблюдения из приведенных выше графиков:
- Повышение производительности на 4% при SNC=Enabled.
- Предварительная выборка программного обеспечения не влияет на производительность.
- Производительность выше на 2% при использовании профиля производительности по сравнению с профилями DAPC и ОС.
Заключение
В этом исследовании мы оценили влияние различных параметров настройки BIOS на производительность при использовании процессора Intel Xeon Gold 6230. Наблюдая за производительностью различных параметров BIOS в различных тестах и приложениях, можно сделать следующий вывод.
- Предварительная выборка программного обеспечения не оказывает существенного влияния на производительность протестированных наборов данных. Таким образом, мы рекомендуем оставить программное устройство предвыборки по умолчанию, т.е. включенным
- При SNC=Включено повышение производительности на 2-4% в Fluent и Stream, примерно на 1% в WRF по сравнению с SNC = Отключено. Таким образом, мы рекомендуем включить SNC для достижения более высокой производительности.
- Профиль производительности на 2–4% лучше, чем у PerformancePerWattDAPC и PerformancePerWattOS. Поэтому мы рекомендуем использовать профиль производительности для HPC.
Для кластеров HPC общего назначения рекомендуется отключить технологию Hyper-Threading . В зависимости от используемых приложений следует протестировать и активировать преимущества этой функции.
В данном исследовании не рассматривается функция RAS памяти под названием Adaptive Double DRAM Device Correction (ADDDC), доступная в случае, если в системе конфигурация памяти с 4 модулями DRAM (DIMM емкостью 32 Гбайт, 64 Гбайт). Функция ADDDC недоступна, если в системе установлены модули DIMM на базе x8 (8 Гбайт, 16 Гбайт), и не имеет значения в этих конфигурациях. Для рабочих нагрузок HPC рекомендуется отключить ADDDC, если это возможно в качестве настраиваемого параметра.