После того, как RISC-процессоры были сдвинуты с пьедестала, на рынке процессоров для систем высокопроизводительных вычислений (High Performance Computing, HPC) стала господствовать архитектура x86-64. Но сегодня ее серьезным конкурентом вновь стали RISC-архитектуры, разрабатываемые в ARM Holdings, более известные до сих пор как платформы для мобильных устройств. В центрах обработки данных могут применяться такие реализации ARM, как Marvell ThunderX2 (TX2), Ampere Computing eMag и Huawei HiSilicon Kunpeng 916. Первые уже используются в суперкомпьютерах Cray XC50, а в ближайшее время ожидается появление 96-ядерного ThunderX3 (TX3), высокочастотного 80-ядерного Ampere Altra, 64-ядерного Huawei Kunpeng 920 с технологией 7 нм, а также процессора Fujitsu A64FX, ориентированного на углубленную векторную обработку.

Архитектура ARM оказалась весьма удачной. Процессоры на ее основе потенциально могут использоваться в различных областях. Компания ARM Holdings создает версии архитектуры, разрабатывает ядра для выполнения базовых команд ARM и лицензирует свои разработки для многих производителей, выпускающих собственные аппаратно-программные средства. Косвенным подтверждением эффективности RISC-архитектуры может служить и рост популярности другого направления — открытой архитектуры RISC-V [1], экосистема которой, однако, еще молода, чтобы говорить о ее проникновении в серверную область.

Интерес для HPC представляют версии ARM начиная с ARMv8-A с опционной 64-разрядной архитектурой Aarch64. В TX2 и в TX3 используется еще NEON — расширение архитектуры для работы со 128-битными векторами. В ARMv8.2-A имеется расширение SVE для работы с векторами чисел с плавающей запятой длиной до 2048 бит, поддержка которого предполагается в Fujitsu A64FX. Кроме того, в ARMv8.6-A появились весьма актуальные для HPC-приложений операции над матрицами. Как видно из таблицы, процессоры TX2 выглядят вполне конкурентоспособными и имеют серьезные шансы на применение в высокопроизводительных и суперкомпьютерных конфигурациях.

ARM для HPC: время пришло?

Микроархитектура TX2 [2] основана на микроархитектуре ядер Vulcan (en.wikichip.org/wiki/cavium/microarchitectures/vulcan), приобретенной компанией Cavium, вошедшей в состав Marvell. Эти ядра поддерживают одновременную многопоточность до четырех активных потоков, как и в Power9, что вдвое выше, чем у Xeon HyperThreading. Каждое ядро имеет по 32 Кбайт I- и D-кэшей L1 и 256 Кбайт кэша L2; общий кэш L3 имеет емкость размером 1 Мбайт на ядро. При этом L3 работает на половине тактовой частоты ядра [3], что является типичным проявлением понижения «внеядерной» частоты для работы с кэшем L3, интерфейсом памяти и др. Все эти показатели кэшей для всех старших моделей CN9980 (с разными тактовыми частотами), главных претендентов для HPC, пока уступают соответствующим показателям Xeon Platinum 81XX.

Ядра TX2 (рисунок), как и в Power9, могут работать с 8 контроллерами памяти DDR4/2667 — это больше, чем у XCL 81XX, и дает более высокую теоретическую пиковую пропускную способность — 171 Гбайт/с против 128 Гбайт/с. Измеренные данные пиковой ПС всех уровней кэшей и оперативной памяти для 28-ядерных TX2 СN9975 / 1,8 ГГц и 28-ядерных Xeon 8180M / 2,5 ГГц приведены в [2]. Но в 2019 году Intel начала выпуск XСL второго поколения, в которых используются контроллеры DDR4/2933, количество которых зависит от числа процессорных ядер. У процессоров класса Platinum 82XX их шесть (159 Гбайт/с), а у старших моделей Xeon 92XX (с 32–56 ядрами) — 12, что превосходит TX2 и, возможно, ориентировано на противостояние с будущими 96-ядерными ThunderX3, имеющими 8 каналов DDR4/3200.

Микроархитектура Marvell ThunderX2

В TX2 ядра процессора связаны между собой двунаправленным кольцом, а у XCL Platinum используется более продвинутая mesh-топология. Для связи между процессорами в TX2 используется второе поколение межсоединения Cavium Coherent Processor Interconnect (CCPI2) с пропускной способностью 75 Гбайт/с против 62,4 Гбайт/с у трех каналов связи UPI (Ultra Path Interconnect) в первом поколении XCL Platinum. Но во втором поколении XCL Platinum число используемых UPI уже зависит от числа процессорных ядер: в Platinum 82XX применяются три канала UPI, а в 92XX c большим числом процессорных ядер используются 4 UPI, что выше по пропускной способности, чем у TX2.

Cамый главный недостаток микроархитектуры TX2 по сравнению с XCL — работа с векторами. Ядра у этого ARM-процессора имеют по два устройства выполнения NEON-команд над 128-разрядными векторами (два DP-числа), что дает 8 DP FLOPS/такт (как и у Power9), и это в четыре раза меньше, чем у XCL. В будущих ядрах TX3 ожидается по четыре векторных NEON-устройства.

Ожидаемые TX3 будут иметь до 96 ядер и станут конкурировать с Fujitsu A64FX и Intel XCL второго поколения (если раньше не появятся новые Xeon Ice Lake с 56 ядрами 2,6 ГГц). Однако для HPC-приложений важна пропускная способность памяти для такого количества ядер. В Intel для старших моделей XCL 92XX пошли на увеличение числа поддерживаемых каналов DDR4 до 12, и поделенная на число ядер пиковая пропускная способность стала вдвое выше, чем у TX3.

Архитектура команд ARMv8-A поддерживается основными дистрибутивами Linux (SLES, OpenSuSE, RHEL и CentOS), а на работу с 32-ядерными ARM-процессорами Ampere eMag ориентирована, например, ОС Oracle Linux. Для ARMv8-A доступен также ряд компиляторов, библиотек для HPС и т. д.

Сегодня на рынке доступны серверы c ARM-процессорами, в частности с Marvell TX2 от Gigabyte и Ampere eMag от Lenovo.

Компания Marvell представляла данные тестов SPECcpu2017 и SPECjbb2015, однако spec.org данных TX2, кроме SPEComp для OpenMP-распараллеливания, не приводит. Тесты SPECcpu2017 при обсуждении HPC-архитектур применяются относительно редко. В Университете Индианы на сервере HPE Appolo 70 c двумя 32-ядерными TX2 / 2,2 Ггц для SPEC OMPG 2012 получен базовый результат 10,0, а для Intel Xeon Gold 6148 — 15,8, правда, последние существенно дороже. Кроме того, обычно используемый расчет пиковой производительности процессоров в GFLOPS/с («число ядер» × «число операций с плавающей запятой за такт» × «базовая тактовая частота») для Xeon не верен: при работе всех ядер с AVX512 их базовая частота уменьшается (см. таблицу). Однако используемый расчет через базовую AVX-частоту также не совсем верен: в расчетах на сервере тактовая частота в какие-то моменты может подниматься выше базовой. В [2] для измеренной пиковой производительности Xeon 8180M и 28-ядерного TX2 CN9975 / 1,8 ГГц применялся расчет по умножению матриц, и на двухпроцессорном сервере было получено 3550 GFLOPS, что выше расчета по AVX512-частоте, а для TX2-953 GFLOPS, что выше расчета на базовой частоте. Однако в XСL можно использовать тонкие настройки тактовых частот [3].

Применительно к HPC микропроцессоры TX2 сравниваются, в основном, c XCL первого поколения, поддерживающими AVX512 — Gold (61XX) и Platinum (81XX). По умолчанию везде предполагаются сопоставления пиковых производительностей для двухпроцессорных серверов, а не отдельных процессоров.

Источник: anandtech.com

В [4] серверы c 32-ядерными TX2 / 2,1 ГГц сравнивались с серверами на 28-ядерных XCL 8176 / 2,1 ГГц. Интересно, что максимальная пропускная способность памяти сервера с TX2 в STREAM triad (249 Гбайт/с, на 21% быстрее сервера с XCL) была достигнута при использовании в OpenMP 16 потоков — вдвое меньше, чем число ядер TX2, а соответствующий пиковый показатель производительности у TX2 на 33% выше, чем у XCL. В [5] 24-ядерные XCL 8160 / 2,1 ГГц, работавшие с шестью каналами DDR4-3200, сравниваются по показателям STREAM triad с 32-ядерными TX2 / 2,0 ГГц. Вне зависимости от числа задействованных процессоров (один или два), при работе с любым числом потоков OpenMP (до 32 и 64 соответственно) TX2 c восемью каналами DDR4-2666 демонстрирует более высокую пропускную способность, которая насыщается при 16 потоках OpenMP и повышается при использовании турбочастоты.

Что касается собственно пиковой производительности, то TX2 существенно отстает от XCL при работе с приложениями, требующими вычислений с плавающей запятой, — в этом смысле TX2 соответствует Power9, поэтому актуальны сравнения этих микропроцессоров, и особенно в конфигурации в серверах с Nvidia V100, где Power9 показывает наиболее высокую эффективность.

В используемом для топ-500 тесте Linpack достигнутая для TX2 / 2,0 ГГц производительность составила 859 GFLOPS на 64 ядрах [5]. Классическим тестом является умножение матриц (DGEMM): 28-ядерный TX2 получил 396 GFLOPS против 784 GFLOPS, достигнутых на 16 нитях в 24-ядерном XCL 8160 (расчеты на одном сокете). Эти показатели иллюстрируют возможности процессоров при работе с векторами, где XCL получает в четыре раза больше результатов за такт, чем TX2.

Тест HPCG c меньшей вычислительной интенсивностью, чем у Linpack, также применялся в исследованиях TX2 [5, 6]. По данным [5], использование векторов практически не повышало производительность для 28-ядерных TX2 и 24-ядерных XCL, а у TX2 / 2,0 ГГц она была больше, чем у XCL 8160 / 2,1 ГГц, практически во всех программных ядрах HPCG и в целом — выше в 1,7 раза.

В [3–7] исследована производительность TX2 для других тестов. В [4] серверы с 32-ядерными TX2 сопоставлялись c серверами не только с 28-ядерными XCL (Platinum 8176), но и с более дешевыми 20-ядерными XCL / 2,4 ГГЦ (Gold 6148). Для одних мини-приложений TX2 оказался быстрее, чем XCL, для других — наоборот. Производительность при выполнении типовых приложений, включая вычислительную химию, для TX2 оказалась ниже, чем у XCL, за исключением расчета молекулярной динамики (NAMD) маленького вируса, где XCL 6148 был медленнее, и расчетов по вычислительной гидродинамике (OpenFOAM), где TX2 заметно быстрее XCL. В среднем TX2 уступил XCL 8176 на 26%. Понятно, что TX2 показывает лучшие результаты для приложений, для которых критична работа с памятью и большим количеством потоков.

Среднегеометрическая производительность на единицу стоимости [4] у TX2 для типовых HPC-приложений в 3,9 раза больше, чем у XCL Platinum 8176, и в полтора раза больше, чем у XCL Gold 6148. Конечно, этот показатель сильно зависит от используемого приложения: для задач с интенсивными вычислениями эти значения у TX2 и Gold 6148 близки. Следует учесть, что большинство достигнутых показателей производительности было получено без специальной настройки программного кода к ARM-архитектуре — выбор оптимального компилятора и адаптированных библиотек для HPC-расчетов обычно существенно влияет на быстродействие [3, 5].

Микропроцессоры TX2 демонстрируют хороший уровень энергопотребления. Здесь справедливым представляется не сопоставлениe TDP, а реальное измерение потребляемой мощности при работе приложений, как в [5, 7]. В [7] так были сопоставлены 32-ядерный TX2 / 2,2 ГГц и 16-ядерный XCL Gold 6130 / 2,1 ГГц. Было найдено, что для вычислительно интенсивного приложения уровни энергопотребления у TX2 и XCL близки, но для приложения, требующего более активной работы с памятью, энергоэффективность у TX2 значительно выше, чем у XCL.

Сравнение по производительности TX2 с более близкими к ним (по высокой пропускной способности доступа к памяти при более слабой, чем у XCL, работе с векторами) микропроцессорами Power9 проведено в [2, 5]. B некоторых расчетах быстрее был TX2, в некоторых — Power9, а в целом был сделан вывод о том, что общие показатели TX2 в HPC сопоставимы c таковыми у современных архитектур Intel и IBM Power9. Весьма актуальным является сопоставление возможностей TX2 и Power9 в серверах с Nvidia V100. Микропроцессоры Power9 потенциально имеют преимущество из-за поддержки высокоскоростного межсоединения NVLINK2 с 50 Гбайт/с и с когерентностью памяти против PCIe v.3 x16 (16 Гбайт/с) у TX2.

В www.olcf.ornl.gov/wp-content/uploads/2019/11/ARM_NVIDIA_APP_EVALUATION-1.pdf сервер на базе 21-ядерных Power9 / 2,8 ГГц на большинстве приложений молекулярной динамики опережал cервер на базе TX2, но при работе с одним GPU отставание было незначительным. Компания Nvidia объявила о работах для поддержки серверов на базе ARM-процессоров (включая Ampere, Fujitsu и Marvell).

В начале 2020 года компания Marvell представила данные по производительности ThunderX3, приведя, однако, в основном собственные оценки производительности, что пока следует рассматривать как возможные показатели будущих 96-ядерных TX3 CN110XX 2,2 ГГц с турбочастотой 3 ГГц. Пиковая производительность TX3, который планируется активно применять для работы с большими данными, СУБД и т. д., составила 3379,2 GFLOPS, что выше, чем у Xeon 8280, а для популярных HPC-приложений демонстрировались оценки, согласно которым ThunderX3 опережал AMD EPYC 7742.

***

Приведенные данные свидетельствуют о высоком потенциале ARM-процессоров Marvell TX2 для применения на рынке высокопроизводительных вычислений. Микропроцессоры демонстрируют не только высокую производительность, достигаемую благодаря пропускной способности доступа к оперативной памяти по сравнению с первым поколением Intel Xeon Platinum, но и хорошее соотношение производительность/стоимость, особенно для приложений, не требующих интенсивных вычислений. Однако широкое применение ARM-процессоров от Marvell и Ampere Computing на рынке серверов будет сдерживаться отсутствием доступных приложений.

Несмотря на то что TX2 обладает хорошей энергоэффективностью, в списке GREEN500 пока лидирует прототип суперкомпьютера на базе процессоров Fujitsu A64FX.

Весьма перспективно применение TX2 в серверах вместе с графическими процессорами Nvidia V100, однако здесь системы ARM следует сравнивать c решениями на платформе Power9.

В любом случае микропроцессоры ARM имеют все шансы занять свою нишу на HPC-рынке.

Литература

1. Владимир Фролов, Владимир Галактионов, Вадим Санжаров. RISC-V: стандарт, изменивший мир микропроцессоров // Открытые системы. СУБД.  —  2020.  — № 2. — С. 30–34.  URL: www.osp.ru/os/2020/02/13055471 (дата обращения: 22.05.2020).

2. Kwack J.H. et. al. Roofline-based Performance Efficiency of HPC Benchmarks and Applications on Current Generation of Processor Architectures (2019), Cray User Group conference.

3. Hofmann J. et al. Bridging the Architecture Gap: Abstracting Performance-Relevant Properties of Modern Server Processors //arXiv preprint arXiv:1907.00048. — 2019.

4. McIntosh-Smith S. et al. A performance analysis of the first generation of HPC-optimized Arm processors // Concurrency and Computation: Practice and Experience. — 2019. — Vol. 31, N. 16. — P. e5110.

5. Banchelli F. et al. MB3 D6.9 — Performance analysis of applications and mini-applications and benchmarking on the project test platforms. Version 1.0. — 2019.

6. Hammond S. et al. Evaluating the Marvell TX2 Server Processor for HPC Workloads (2019). URL: https://cfwebprod.sandia.gov/cfdocs/CompResearch/docs/bench2019.pdf (дата обращения: 21.05.2020).

7. Calore E. et al. TX2 Performance and Energy-Efficiency for HPC Workloads // Computation. — 2020. — Vol. 8, N. 1. — P. 20.

Михаил Кузьминский (kus@free.net ) — старший научный сотрудник, Институт органической химии РАН (Москва).

DOI: 10.26295/OS.2020.76.98.002