Стаття написана Варуном Бавою, Савітхою Парік і Ашишем К. Сінгхом з HPC та AI Innovation Lab у квітні 2019 року
З випуском процесорів Intel Xeon® Processor Scalable Family 2-го покоління (архітектура під кодовою назвою «Cascade Lake»), Dell EMC оновила сервери PowerEdge 14-го покоління, щоб скористатися збільшеною кількістю ядер і вищою швидкістю пам'яті, що принесе користь програмам HPC.
У цьому блозі представлено перший набір результатів і обговорюється вплив різних параметрів налаштування BIOS, доступних на Dell EMC PowerEdge C6420, з новітніми процесорами Intel Xeon® Cascade Lake для деяких тестів і додатків HPC. Нижче наводиться короткий опис процесора Cascade Lake, опцій BIOS і додатків HPC, що використовуються в даному дослідженні.
Cascade Lake є наступником Intel для Skylake. Процесор 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.
Налаштування процесора:
- Попередня вибірка рядка суміжного кешу: Механізм попередньої вибірки Nearby Cache-Line дозволяє автоматично отримувати обладнання, воно працює без втручання програміста. Якщо увімкнено, він вміщує два 64-байтові рядки кешу в 128-байтовий сектор, незалежно від того, чи був запитаний додатковий рядок кешу чи ні.
- Програма префetcer: Він дозволяє уникнути зупинки, завантажуючи дані в кеш до того, як вони знадобляться. Приклад: Для попередньої вибірки даних з основної пам'яті в кеш L2 набагато раніше використання за допомогою інструкції попередньої вибірки L2, а потім попередньої вибірки даних з кешу L2 до кешу L1 безпосередньо перед використанням за допомогою інструкції попередньої вибірки L1. Тут, коли встановлено увімкнено, процесор буде попередньо отримувати додатковий рядок кешу для кожного запиту пам'яті.
- SNC (Sub-Numa Cluster): Увімкнення 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,
Cstate, C1E,
керування Pstate, частота Uncore тощо. Різні системні профілі, які порівнювалися в цьому дослідженні, включають:
- Продуктивність
- PerformancePerWattDAPC
- PerformancePerWattOS
Ми використовували два тести HPC і два додатки 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: Застосування та контрольні показники
Компоненти |
Деталі |
Сервер |
Сервер 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 Cluster Edition_2019_Update_1 |
Таблиця 2 Конфігурація сервера
Усі результати, показані тут, базуються на односерверних тестах; Продуктивність на рівні кластера буде обмежена продуктивністю одного сервера. Для порівняння ефективності використовувалися такі показники:
- Потік – оцінка тріади, як повідомляє бенчмарк потоку.
- HPL – GFLOP/секунда.
- Fluent - рейтинг розв'язувачів за даними Fluent.
- WRF – Середній крок часу, обчислений за останні 719 інтервалів для Conus 2.5 км
Контрольні показники та результати застосування
Абревіатури позначень графіків:
Системні профілі:
Perf – Продуктивність ОС – ПродуктивністьPerWattOS DAPC – Кластеризація PerformancePerWattDAPC
sub-NUMA: SNC = 0(SNC = вимкнено): SNC = 1(SNC = Увімкнено: Форматується як смугастий на графіках)
SW – Software Prefetcher: SW = 0 (SW = вимкнено): SW = 1 (SW = увімкнено)
Малюнок 2: Високопродуктивний Linpack
На малюнку 2 порівнюється результат HPL з розміром проблеми = 90%, тобто N=144476 для різних варіантів BIOS. На графіку зображені абсолютні гігафлопи, отримані під час запуску HPL у різних конфігураціях BIOS. Ці отримані гігафлопи наносяться на вісь Y, чим вище, тим краще.
Нижче наведені спостереження з графіка:
- Менше 1% різниці у продуктивності HPL через попередню вибірку програмного забезпечення.
- Немає значного впливу SNC на продуктивність HPL (на 0,5% краще з SNC=Disabled).
- Профіль системи продуктивності на 6% кращий у порівнянні з ОС і DAPC.
Малюнок 3: Потік
На малюнку 3 порівнюється результат STREAM для різних конфігурацій BIOS.
Графік відображає пропускну здатність пам'яті в гігабайтах на секунду, отриману під час запуску тріади STREAM. Отримана смуга пропускання пам'яті (ГБ/сек) наноситься на вісь Y, чим вище, тим краще. Конфігурація BIOS, пов'язана з конкретними значеннями гігабайт в секунду, нанесена на осі X.
Нижче наведені спостереження з графіка:
- До 3% краща пропускна здатність пам'яті з увімкненим SNC=.
- Невелике відхилення в продуктивності через попередню вибірку програмного забезпечення на пропускну здатність пам'яті STREAM.
- Немає відхилень у системних профілях.
Малюнок 4: Пропускна здатність пам'яті – SNC
На рисунку 4 зображено показник пропускної здатності пам'яті Stream Triad у такій конфігурації. Повна пропускна здатність системної пам'яті становить ~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.
- Немає різниці в продуктивності для Software Prefetch Enabled і Disabled.
- Профіль продуктивності на 1% кращий, ніж у профілів PerformancePerWattDAPC
На рисунку з 6 по рисунок 9 показано рейтинг розв'язувача, отриманий під час запуску Fluent, з набором даних Ice_2m, Combustor_12m, Aircraft_Wing_14m та Exhaust_System_33m відповідно. Отриманий рейтинг розв'язувача будується на осі Y, чим вище, тим краще. Відносні профілі, пов'язані з конкретними значеннями середнього часу, наносяться на осі x.
Нижче наведено загальні спостереження з наведених вище графіків:
- До 4% краща продуктивність з SNC=Enabled.
- Попередня вибірка програмного забезпечення не впливає на продуктивність.
- До 2% краща продуктивність із профілем продуктивності порівняно з профілями DAPC та OS.
Висновок
У цьому дослідженні ми оцінили вплив різних варіантів налаштування BIOS на продуктивність при використанні процесора Intel Xeon Gold 6230. Спостерігаючи за продуктивністю різних опцій BIOS у різних тестах і програмах, можна зробити наступний висновок:
- Software Prefetch не має значного впливу на продуктивність тестованих наборів даних. Таким чином, ми рекомендуємо Software Prefetcher залишитися за замовчуванням, тобто Enabled
- З увімкненим SNC=Увімкнено збільшення продуктивності на 2-4% у Fluent та Stream, приблизно на 1% у WRF порівняно з SNC = Вимкнено. Таким чином, ми рекомендуємо ввімкнути SNC для досягнення кращої продуктивності.
- Профіль продуктивності на 2-4% кращий, ніж у PerformancePerWattDAPC і PerformancePerWattOS. Таким чином, ми рекомендуємо профіль продуктивності для HPC.
Рекомендується вимкнути Hyper-Threading для кластерів HPC загального призначення. Залежно від використовуваних програм, переваги цієї функції слід протестувати та ввімкнути за необхідності.
У цьому дослідженні не обговорюється функція RAS пам'яті під назвою Adaptive Double DRAM Device Correction (ADDDC), яка доступна, коли система налаштована з пам'яттю, яка має x4 DRAM (32 ГБ, 64 ГБ DIMM). ADDDC недоступний, якщо система має модулі DIMM на базі x8 (8 ГБ, 16 ГБ), і не має значення в цих конфігураціях. Для робочих навантажень HPC рекомендується встановити значення ADDDC вимкнено, якщо він доступний як параметр, що налаштовується.