Серверные процессоры обзаводятся все большим числом ядер, например, в старших моделях процессоров AMD EPYC Zen 4 их уже более сотни, а в китайском SW26010Pro — около 400. Для решения задач машинного обучения и поддержки сложных расчетов все шире применяются GPGPU (General-Purpose computing on Graphics Processing Unit, далее GPU) , а процессоры начинают поддерживать актуальные для задач ИИ форматы данных. Однако и традиционные процессоры x86-64 не стоят на месте, и яркая тому иллюстрация движения компании Intel в том числе к задачам HPC и ИИ — выпуск в 2023 году серверных масштабируемых процессоров четвертого поколения Xeon Sapphire Rapids (Xeon SPR).

Выпуск Xeon SPR начался в 2023 году, когда компания добавила к старшим моделям семейства Max (Max 9480) память HBM2E (High Bandwidth Memory), которая ранее применялась в многоядерных процессорах Xeon Phi, а затем и в многоядерных (52 ядра) серверных ARM-процессорах A64FX от Fujitsu. Intel пока испытывает проблемы со своей собственной полупроводниковой технологией, поэтому ожидаемый прорыв с новым техпроцессом 18A (1,8 нм) планируется уже в 2024 году либо позже.

Рис. 1. Пропускная способность памяти для одного ядра процессоров Intel и AMD

Основной конкурент Intel, компания AMD, использует технологию TSMC и ведет ценовые войны, столь явных успехов не демонстрирует и предпочитает вести ценовые войны, предлагая выгодные цены за свои процессоры. На рис. 1 приведены показатели пропускной способности памяти для Xeon и AMD EPYC. Преимущество Intel в поддержке векторных операций AVX-512, обеспечивающих высокую пиковую производительность, как оказалось, в HPC-приложениях реализовывалось не настолько часто, но, тем не менее, поддержка этих операций появилась и в AMD Zen 4. Основное давление на производителей оказывает необходимость решения задач ИИ, требующих большого количества процессорных ядер и высокой пропускной способности памяти. Ориентация Intel на ИИ ярко проявилась еще в 2020 году, когда компания расширила систему команд своих процессоров матричными операциями AMX (Advanced Matrix Extensions), направленными на востребованную задачами ИИ работу с числами форматов INT8 и BF16, широко применяемыми на GPU с тензорными ядрами.

При большом числе процессорных ядер производительность все чаще начинает ограничиваться пропускной способностью памяти, особенно в задачах ИИ. Но Fujitsu ориентировала свои A64FX на применение в HPC, а инженеры Intel — на более широкое применение процессоров для задач ИИ, одновременно соревнуясь с EPYC по производительности, поэтому и сделали выбор в пользу HBM на несколько лет позже. А вот в GPGPU (General-Purpose computing on Graphics Processing Unit, далее GPU) память HBM применяется уже давно. Выпуск своих GPU Ponte Vecchio компания Intel тоже начала c задержкой. Вместе с Max 9480 эти GPU располагаются в узлах суперкомпьютера Aurora, занявшего второе место в списке Top500 (ноябрь 2023 года). В GPU Nvidia GH200 (Grace Hopper) и анонсированном AMD MI300 уже реализуется построение суперчипов с интеграцией процессоров и GPU в рамках одной общей микросхемы. Intel также объявила о планах выпуска в 2025 году своих микросхем Falcon Store с интеграцией процессоров Xeon cо своими GPU.

Ясно, что GPU нужны для решения только определенных сложных задач HPC или ИИ, а Xeon Max становится возможным конкурентом на поле решений, где сейчас главенствуют графические процессоры. Однако необходимо определить, в каких случаях Xeon Max будет более эффективен, чем GPU, а когда его лучше применять совместно с GPU.

Все процессоры разных поколений Xeon Scalable используют для связи между ядрами межсоединение по топологии cетка (mesh) (рис. 2) [1] — набор кольцевых шин [2], что позволяет обеспечить низкую задержку и высокую пропускную способность коммуникаций при большом количестве процессорных ядер.

Рис. 2. Микроархитектура Xeon SPR

Как видно из рис. 2, процессоры Xeon SPR могут иметь 60 ядер, хотя в реальных моделях это число меняется от 32 (для Max 9462) до 56 (для Max 9480). В моделях с меньшим числом ядер базовая тактовая частота выше (2,7 ГГц для Max 9462 против 1,9 ГГц в Max 9480), а турбочастота у всех одна — 3,5 ГГц, что позволяет рассчитать пиковую производительность, умножив число ядер на тактовую частоту и на количество операций за такт в одном ядре (32 для формата FP64 при использовании AVX-512). Для старшей модели Max 9480 — 6,3 TFLOPS при расчете на турбочастоте, хотя реально из-за большого тепловыделения на интенсивных вычислительных задачах частота понижается, тем не менее энергопотребление каждого процессора Xeon Max может достигать 350 Вт [1].

Базовые компоненты микроархитектуры отдельных ядер в разных поколениях масштабируемых Xeon неизменны — в первую очередь меняются количественные показатели, например емкость кэш-памяти: размер I-кэша L1 в четвертом поколении ядер Xeon составляет 32 Кбайт; емкость D-кэша L1 выросла до 48 Кбайт; размер кэша L2 увеличился вдвое (по сравнению с третьим поколением Ice Lake), до 2 Мбайт на ядро. Емкость кэш-памяти L3 (в Intel применяется термин LLC) возросла до 1,875 Мбайт на ядро [1], но L3 является общим для всего Xeon. Начиная с первого поколения масштабируемых процессоров Xeon Skylake (SKL) кэш LLC является неинклюзивным, например, строки в L2 могут не содержать данных, располагаемых в LLC, — при этом уменьшается частота промахов в LLC.

C переходом на сеточную топологию межсоединения ядер меняется протокол обслуживания когерентности кэша — используется специальная структура каталогов, которая хранится в памяти и кэшируется агентом кэширования. Блок СНA (caching and home agent, рис. 2) — комбинированный блок, использующий функции агента кэширования (для LLC) и домашнего агента для работы с межсоединением UPI (Ultra Path Interconnect) для связи разных процессоров сервера. До появления Xeon Scalable аналогичные функции выполнялись отдельными блоками, а распределение CHA (caching and home agent) по разным ядрам обеспечивает масштабируемость для выполнения этих функций. Неинклюзивный LLC дополняется блоком SP (snoop filter, рис. 2), который отслеживает местоположение и состояние строк, хранящихся в L1/L2 [2, 3].

Как видно на рис. 2, Xeon SPR имеет четыре контроллера памяти, поддерживающих по два канала памяти DDR5-4800 (в Intel Ice Lake применялся DDR4), — 4800 млн передач в секунду для одного 64-битного канала дают пропускную способность 38,4 Гбайт/с. Но если к каналу подсоединяется не один модуль DIMM, а два, то контроллер памяти сможет отработать только 4400 млн передач в секунду [1]. Соответственно, может достигаться определенный компромисс между используемой емкостью памяти и ее пропускной способностью.

Рис. 3. Общая блок-схема Intel Xeon Max

Архитектура из рис. 2 типична для моделей Xeon SPR, а для Xeon Max c процессором интегрирована еще память HBM2E с теоретической пропускной способностью около 1,6 Тбайт/с и фиксированной емкостью 64 Гбайт, что сопоставимо с 80 Гбайт у графических процессоров Nvidia A100/H100 [4, 5]. Таким образом, в Xeon используется сразу два типа памяти — DDR5 и HBM2E (рис. 3), и если в конфигурации предполагается работа сразу с обоими типами памяти, то возможно три разных режима работы:

  • одноуровневый (1LM) предоставляет два разных адресных пространства для DDR5 и HBM;
  • двухуровневый (2LM), в котором память HBM выступает в качестве прозрачного кэша для памяти DDR5, где и происходит работа;
  • режим «fake» NUMA обеспечивает неравномерный доступ к памяти — быстрое обращение к «ближней» памяти через соответствующие контроллеры и чуть «замедленное» при работе с «дальней» памятью [4].

Если 64 Гбайт достаточно для работы, то наибольшая производительность может быть достигнута при работе исключительно с памятью HBM2E, а DDR5 устанавливается при наличии потребности в большей емкости. Процессор Xeon SPR без HBM на рис. 2 представлен в варианте с четырьмя разными доменами, каждый со своим собственным контроллером, что обеспечивает быстрый доступ к ближайшей памяти, но возможен также и режим с организацией двух крупных доменов. В Ice Lake могло быть только два идентичных кластера Sub-NUMA. Применение разных режимов работы с памятью связано с разными возможными конфигурациями с использованием модулей DDR5-памяти [1, 4].

В Xeon Max имеется ряд других усовершенствований, важных для специфических областей применения, например, для повышения общей производительности связь между процессорами в двухсокетных серверах по четырем каналам UPI происходит на скорости 16 GT/s против 11,2 GT/s в Ice Lake. Кроме того, в Xeon Max поддерживается 80 линий PCIe-v5.0 и стандарт межсоединения CXL 1.1 [1]. В Xeon Max имеется ряд других усовершенствований, важных для специфических областей применения.

Показатели теоретически возможной производительности и пропускной способности, конечно, могут существенно отличаться от достигаемым в реальных приложениях. Согласно тестам SPEC СPU2017 (fp_speed и fp_rate) наблюдается одновременно сильный рост производительности у старшей модели Xeon Max 9480 по сравнению с Xeon Platinum 8360Y при существенном отставании от 128-ядерного AMD EPYC 9754 и EPYC 7V73X [6]. Дело в том, что наибольшая эффективность применения Xeon Max наблюдается при работе с приложениями, в которых производительность зависит от пропускной способности памяти. Однако надо иметь в виду, что в оценках следует ориентироваться не на теоретическую пропускную способность памяти HBM2E в Xeon Max, а на реально достигаемую, которая для Xeon 9480 заметно ниже [5]. Кроме этого, память HBM достаточно дорогая и экономически эффективно применять Max 9480 для приложений, где за счет роста пропускной способности памяти производительность может вырасти на 30% и более [7].

Сейчас Xeon 9480 уступает по производительности графическим процессорам Nvidia, например A100 [5]. Но сегодня Xeon Max 9480 и более младшие модели этой серии могут применяться вместо GPU для приложений, требующих большой пропускной способности памяти и меньшей, чем у современных GPU, производительности, например в случае применения в не самых сложных задачах машинного обучения. Это может быть особенно актуально для приложений, работающих на процессорах архитектуры x86 и не имеющих ПО для работы с GPU. Здесь надо оценивать еще и ценовые показатели, поэтому зона эффективного применения Xeon Max может быть достаточно локальной.

***

До недавнего времени у компании Intel эффективнее всего получался выпуск именно CPU, однако под влиянием рынка, особенно учитывая имеющееся пока технологическое отставание от конкурентов, Intel, благодаря использованию высокоскоростной памяти HBM2E, предполагает применение своих новых процессоров и вместо GPU, и вместе c GPU — везде, где будут соответствующие запросы потребителей.

Литература

1. URL: https://www.intel.com/content/www/us/en/developer/articles/technical/xeon-scalable-processor-max-series.html (дата обращения: 21.12.2023).

2. Dai M. Reverse Engineering the Intel Cascade Lake Mesh Interconnect. Massachusetts Institute of Technology, 2021.

3. URL: https://community.intel.com/t5/Software-Tuning-Performance/Directory-Structure-in-Skylake-Server-CPUs/td-p/1185376 (дата обращения: 21.12.2023).

4. URL: https://cdrdv2-public.intel.com/769060/354227-intel-xeon-cpu-max-series-configuration-and-tuning-guide.pdf (дата обращения: 21.12.2023).

5. McCalpin J. D. Bandwidth Limits in the Intel Xeon Max (Sapphire Rapids with HBM) Processors // International Conference on High Performance Computing. Cham: Springer Nature Switzerland, 2023. С. 403–413.

6. Reguly I. Z. Comparative evaluation of bandwidth-bound applications on the Intel Xeon CPU MAX Series // arXiv: preprint arXiv: 2309.09084. — 2023.

7. Wang Y. et al. Application Performance Analysis: A Report on the Impact of Memory Bandwidth //International Conference on High Performance Computing. — Cham: Springer Nature Switzerland, 2023. — С. 339–352.

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

DOI: 10.51793/OS.2024.60.53.002