Серверные CISC-процессоры Intel Xeon уже давно захватили львиную долю серверного рынка. На их основе строится большинство современных высокопроизводительных кластеров, и в этом же направлении двигается, например, и компания AMD, предлагая процессоры EPYC. Хотя в архитектуре x86 появились признаки RISC, традиционные RISC-процессоры не погибли: продолжает развиваться линейка IBM Power [1].

Сегодня происходит смена понятий. Например, к высокопроизводительным системам (High Performance Computing, HPC) и процессорам стали относить также центральные процессоры, ориентированные на работу с приложениями искусственного интеллекта, для которых актуальны совсем другие типы данных (отличные от типичных для HPC форматов представления вещественных чисел с двойной точностью), а акцент ставится на обработке сверхбольших объемов данных. В результате многие современные серверные процессоры стали поддерживать работу в широком спектре приложений благодаря наличию соответствующих расширений в системе команд (ISA). Конечно, для задач искусственного интеллекта применяются и специализированные процессоры, например серии Huawei Ascend 910 архитектуры ARM.

Вместе с тем явно прослеживается тенденция к возрождению серверных RISC-процессоров — ARM-процессоров [2] (например, Fujitsu A64FX, Nvidia Grace), a также IBM Power10, претендующего на лидерство по производительности.

Предшественник Power10 — процессор Power9 [1] — во многом благодаря поддержке интерфейса NVLink активно применялся в серверах с GPU Nvidia, которые во многих суперкомпьютерах из топ-500 обеспечивают основную часть производительности сервера или узла. Суперкомпьютеры Summit и Sierra, занимающие второе и третье места в рейтинге самых мощных суперкомпьютеров мира (версия от июня 2021 года), имеют в узлах по два Power9 и по 4–6 GPU. Эти суперкомпьютеры установлены в Окриджской и Ливерморской национальных лабораториях США, занимающихся технологиями обеспечения национальной безопасности, и ориентированы на задачи искусственного интеллекта и обработку больших данных. Конечно, выигрыш в производительности при работе с GPU демонстрируют далеко не все HPC-приложения. В том же списке топ-500 акселераторы используются только в трети систем из рейтинга, хотя в суперкомпьютерах, возглавляющих список, GPU применяются чаще.

Вместе с тем возглавляющий топ-500 суперкомпьютер Fugaku на платформе A64FX обходится вообще без GPU. Весной 2021 года Nvidia анонсировала ARM-процессор Grace с поддержкой NVLink, оперативной памятью LPDDR5, и Power10 могут претендовать на роль лидера производительности серверов без GPU (см. таблицу).

Power10: возрождение RISC

Следует отметить такие отличительные особенности Power10, как возможность работы в SMP-сервере с 16 процессорами, поддержка сверхвысокой скорости ввода-вывода (за счет двух PCIe-v5), высокая пропускная способность оперативной памяти (благодаря применению Open Memory Interface пропускная способность может достигать 1 Тбайт/с), причем поддерживаются разные типы памяти. В серверах на базе Power10 память вообще может быть сделана общей для всех узлов кластера [3].

Физически процессора Power10 пока еще нет, и оценки реальной производительности недоступны, поэтому приходится ориентироваться на пиковую. У Intel здесь лидирует Xeon 8380: пиковая производительность при работе с AVX-512 (Advanced Vector Extensions) равна 8 DP FLOPS/такт × 2 (операции за такт, умножить-и-сложить) × 2 (векторных устройства) × 40 (ядер) × 2,3 (ГГц, базовая частота) = 2,9 TFLOPS, что ниже, чем у Power10 и старшей модели A64FX, а при работе с AVX час-тота процессора понижается. Процессоры Nvidia опережают по пиковой производительности Power10 (7,8 TFLOPS у V100, 19,5 TFLOPS у A100 [4]), поэтому для приложений, работающих с GPU, актуальны серверы с Power10 и GPU.

Процессоры Power10 планируется выпускать в двух разных вариантах [3], ориентированных на использование разных приложений: в виде одиночной SCM (Single Chip Module) и в виде двойной микросхемы DCM (Dual Chip Module). В первом случае можно делать компьютеры, имеющие до 16 сокетов, а с DCM — до 4. В сервере возможно применение SMP-конфигураций 4 или 16 процессоров c разными топологиями связей между ними — 2D-тор или полносвязанность. В Power10 используется многопоточность (Simultaneous MultiThreading, SMT), что позволяет нескольким потокам команд работать одновременно на одном физическом процессоре (процессорном ядре) за счет использования в них различных функциональных модулей. Число таких поддерживаемых потоков определяет тип процессорного ядра — SMT8 или SMT4. В Xeon Ice Lake и AMD Zen 3 фактически поддерживается SMT2, а в серверных ARM ThunderX3 планировался SMT4.

В SCM может быть 15 процессорных ядер SMT8, работающих на частоте до 4 ГГц и выше; в DCM — до 30 ядер SMT8, c частотами до 3,5 ГГц и выше. На самом деле в SCM имеется 16 ядер SMT8, но одно из них резервное [3]. Двойные микросхемы эффективнее в задачах, где критично энергопотребление. Ядра SMT4 вдвое меньше SMT8, а их число — вдвое больше (для HPC предпочтительнее SMT4 — здесь каждый поток может загружать больше функциональных модулей процессора; например, в Summit и Sierra используются именно SMT4). Если в Power10 в SCM 15 штук ядер SMT8, то SMT4 — 30, а в DCM их вдвое больше. Процессорные SMT-ядра были и в Power9 [1], и, с учетом SCM/DCM, можно говорить о четырех разных вариантах ядер Power10. Количество ядер в Power10 по сравнению с Power9 увеличилось.

Размеры кеш-памяти в Power10 увеличены относительно Power9: в полтора раза у I-кеша L1, вдвое больше у L2, а кеш L3 также немного увеличился. Если сопоставить это с кешами A64FX (см. таблицу), то L1 больше в A64FX, но вообще нет кеша L3. Возможно, разработчики в Fujitsu посчитали его не настолько важным, поскольку A64FX работает с памятью HBM2 (High Bandwidth Memory), обладающей низкой задержкой, — эту память, по сути, вообще можно воспринимать как некую огромную внешнюю кеш-память. В Power10 существенно увеличена емкость буфера преобразования виртуальных адресов TLB (Translation Lookaside Buffer) — до 4096 записей, а задержки его и кешей понижены [3].

Емкость кеша L3 в Power10 равна 120, а не 128 Мбайт — вместе с одним «отключенным» процессорным ядром изымается и его вклад 8 Мбайт в кеш L3. Микросхема Power10 состоит из двух частей, каждая из которых имеет собственную часть кеша L3 величиной 64 Мбайт, но они связаны шиной, поэтому кеш L3 является общим для всех ядер.

В Power10 для достижения высокой пропускной способности активно используется технология SerDes (Serializer/Deserializer) передачи данных между последовательными и параллельными интерфейсами. Для работы c оперативной памятью применяется SerDes-интерфейс OMI (OpenCAPI, Open Coherent Accelerator Processor Interface) по 8x8 полос со скоростью 32 Гбайт/с. Такой интерфейс вместе cо специальной микросхемой памяти от Microchip обеспечивает низкую задержку и высокую пропускную способность при возможности работы с памятью разных типов (это достигается только модификацией микросхемы). Поддерживается работа с DDR4 емкостью до 4 Тбайт, пропускной способностью 410 Гбайт/с и задержкой 10 нс; DDR5 и GDDR6 c пропускной способностью до 800 Гбайт/с [3]. При подключении через OpenCAPI устройств Storage Class Memory (SCM — твердотельный накопитель NVMe) можно работать с постоянной памятью емкостью до 2 Пбайт. В Power9 используется CAPI c DDR4 [1].

Процессор Power10

По углам микросхемы (см. рисунок) расположены по 4 восьмиполосных SerDes-контроллера PowerAxon (Power with A-bus, X-bus, OpenCAPI и NVLink) 2.0, которые могут конфигурироваться для работы с OpenCAPI или для NUMA-соединения памяти узлов кластера, работая с пропускной способностью 32 ГТ/с на полосу. PowerAxon можно использовать и для SMP-соединения c Power10 в других сокетах сервера, а OpenCAPI — для работы с акселераторами, включая FPGA, с низкой задержкой и высокой пропускной способностью. Кластеризация памяти с применением PowerAxon позволяет «объединить» память в разных узлах кластера на Power10 с использованием (с возможностью физической адресации) до 2 Пбайт общей оперативной памяти. В первую очередь это актуально для задач обработки сверхбольших объемов данных, и такая кластеризация может стать перспективным направлением развития будущих компьютерных архитектур.

И OMI, и PowerAxon обеспечивают пропускную способность до 1 Тбайт/с.

Важнейший компонент Power10 — набор команд OpenPower версии 3.1, ставший открытым через консорциум OpenPower Foundation, что можно считать движением IBM в сторону открытости системы команд, реализованной в ARM или RISC-V [6]. В Power10 было добавлено более 200 новых инструкций. Обеспечены криптографические операции с AES (Advanced Encryption Standard) и SHA-3 (с использованием криптоускорителей, Secure Hash Algorithm), управление электроэнергией и памятью. Предусмотрена возможность применения префикса в командах, включены SIMD-команды и типы данных, актуальные для задач искусственного интеллекта. Power10 обеспечивает работу с целочисленными операндами и с плавающей запятой разных длин. В серверных процессорах Intel AMX (Advanced Matrix eXtension) расширение ISA ориентировано на актуальные для задач ИИ числа с плавающей запятой только половинной точности, поэтому Power10 можно считать более универсальным [4].

Базовые SIMD-команды выполняются в Power10 на восьми 128-битовых SIMD-устройствах (блоках; их в 2 раза больше, чем в Power9), причем появились новые команды MMA (Matrix-Multiply Assist) и соответствующие блоки, реализующие операции линейной алгебры для небольших матриц с использованием так называемых 512-битных аккумуляторов (регистры для результатов выполнения команд, содержащие по четыре 128-битные строки). Эти команды можно использовать для разных задач, включая применение дискретных преобразований Фурье. MMA работает с числами с плавающей запятой длиной 16, 32 и 64 бита и целыми — длиной 32 и 64 бита [5] (см. еще https://www.redbooks.ibm.com/redpapers/pdfs/redp5612.pdf).

Для расчета пиковой производительности с плавающей запятой в Power10, кроме числа ядер и тактовой частоты, нужно знать число получаемых за такт результатов (N), для традиционных DP-задач HPC N = 64 при использовании ядра SMT8 [3]. Тогда на Power10 / 4 ГГц c 15 SMT8 пиковая производительность будет равна 64 × 15 × 4 = 3840 GFLOPS. Если используются SMT4-ядра, то их вдвое больше, чем SMT8, но ММА-блоков в ядре вдвое меньше [3] и пиковая производительность не меняется. Производительность на ядро матричного умножения по сравнению с Power9 при одинаковой тактовой частоте возрастает в четыре раза; улучшается также энергоэффективность [5]. Однако надо иметь в виду, что пиковая производительность достигается только при работе с MMA, а применение GEMM (General Matrix Multiply) актуально не для всех HPC-приложений. Без ММА производительность сильно уменьшается [7]. На рисунке показано строение ядра SMT8 и его SIMD-блоки [3].

Что касается реально достигаемой производительности при работе с традиционными для высокопроизводительных вычислений DP-векторами, то для Power10 она крайне важна: GEMM, ускоряемое за счет работы с MMA, не является лимитирующим для многих HPC-приложений, однако соответствующие данные пока отсутствуют. В [4] отмечается, что для традиционной области HPC сейчас нет необходимости активно развивать специальные «матричные» блоки и пытаться шире применять GEMM.

Внизу микросхемы размещены два контроллера PCIe-v5 x16 — их 16 полос работают на скорости 32 ГТ/с, с общей дуплексной пропускной способностью контроллера достигается значение около 126 Гбайт/с. При работе с DCM доступны полосы PCIe-v5 x64, а c SCM — x32 [3]. Такие высокие скорости ввода-вывода могут потребоваться для обмена данными между узлами кластера или между Power10 и GPU. Для задач искусственного интеллекта часто применяют серверы, содержащие несколько GPU, — например, серверы серии DGX от Nvidia или IBM Power System AC922 на базе Power9, где два процессора могут работать с шестью Nvidia V100. Для доступа к GPU Power9 использует не PCIe, а Nvidia NVLink 2.0 [1], однако в Power10 поддержка PCIe-v5 уже обеспечивает достаточно высокую пропускную способность, поэтому поддержка протокола NVLink 3.0 (для работы с Nvidia A100) в Power10 не реализована. Пока ни один из ведущих производителей не выпускает процессоры с поддержкой PCIe-v5, хотя Intel планировала реализовать PCIe-v5 в следующем поколении Alder Lake, а SSD c поддержкой PCIe-v5 ожидаются в 2022 году. Power9 использует PCIe-v4 [1], а в A64FX имеется контроллер PCIe-v3 x16 с пропускной способностью 15,8 Гбайт/с плюс контроллер межсоединения TofuD.

Что касается энергоэффективности, то в Power10 она улучшилась благодаря применению 7-нанометровой технологии Samsung. Power традиционно отличаются высокой тактовой частотой, а в Power10 было улучшено стробирование частот [3], что позволяет уменьшить частоту в простаивающих блоках процессора и понижает расход электроэнергии. У Fugaku из топ-500 производительность на тесте High Performance Linpack на 1 Ватт близка к Summit (где основную энергию потребляют GPU). Реализация команд для работы с векторами/матрицами в Power10 улучшает этот показатель. Повышение энергоэффективности на ядро по сравнению с Power9 на SPECint — 2,6 раза, на сокет — в три раза [7], однако открытых данных, позволяющих сопоставить энергопотребление у Power10 и у A64FX, нет.

В ядре ОС Linux начиная с версии 5.9 имеется поддержка Power10, и она будет реализована в ОС AIX. Процессоры Power традиционно поддерживаются в Red Hat Enterprise Linux (а Centos 7.5 работает с Power9) и SUSE Linux Enterprise Server. Идет работа над реализацией использования MMA базовыми для Linux компиляторами GNU, а также LLVM: gcc применяет MMA начиная с версии 10.2 [5], LLVM — c версии 12.0.

***

Процессоры Power10 найдут применение на рынке, но спектр их приложений будет определяться ценой и параметрами энергопотребления. Если Power9 широко используются для обработки больших данных, то Power10 претендуют на более широкий спектр задач. Очень важной для Power10 может стать возможность кластеризации памяти — эта перспективная технология может преобразоваться в общее направление развития кластеров. Вместе с тем доля используемых во всем мире аппаратных средств IBM снижается — достаточно проанализировать данные топ-500. Насколько компании удастся справиться с этой тенденцией, неясно, и не исключено, что A64FX может оказаться не хуже или даже предпочтительнее на большинстве приложений и по производительности, и по энергоэффективности при меньшей стоимости. Однако в мае 2021 года появилась информация о разработке в IBM концепции технологии 2 нм, что потенциально может стать революционным прорывом.

Литература

1. Михаил Кузьминский. Power9-процессоры для больших данных // Открытые системы. СУБД. — 2017. — № 3. — С. 10–11. URL: https://www.osp.ru/os/2017/03/13052698 (дата обращения: 21.09.2021).

2. Михаил Кузьминский. ARM для HPC: время пришло? // Oткрытые системы. СУБД. — 2020. — № 2. — С. 12–15. URL: https://www.osp.ru/os/2020/02/13055475 (дата обращения: 21.09.2021). DOI: 10.26295/OS.2020.76.98.002.

3. Starke W. J. et al. IBM's POWER10 Processor. IEEE Micro. — 2021. — Vol. 41. — N. 2. — P. 7–14.

4. Domke J. et al. Matrix engines for high performance computing: A paragon of performance or grasping at straws? arXiv preprint arXiv:2010.14373. — 2020.

5. Moreira J. E. et al. A matrix math facility for Power ISA (TM) processors. arXiv preprint arXiv:2104.03142. 2021.

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

7. Thompto B. W. et al. Energy Efficiency Boost in the AI-Infused POWER10 Processor. 2021 ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA). URL: https://www.research.ibm.com/publications/energy-efficiency-boost-in-the-ai-infused-power10-processor (дата обращения: 21.09.2021).

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