Программы

Статьи

SSD и USB flash drive общие вопросы, ремонт и восстановление, технологии

CXL (Compute Express Link): интерконнект для дата - центров нового поколения

Compute Express Link – CXL

CXL (Compute Express Link): что это за технология, как выглядят устройства, где она применяется и каковы её возможности. Эти вопросы и немного истории CXL мы планируем осветить в этой статье.

Введение

CXL

Что же такое CXL? Compute Express Link (CXL) — высокоскоростной стандарт межсоединения, разработанный для расширения возможностей шины PCIe компанией Intel. Он функционирует как дополнительный уровень (слой) и обеспечивает эффективную связь между процессором и различными устройствами, такими как GPU, RAM и сетевые адаптеры, что делает его особенно полезным в таких направлениях, как высокопроизводительные вычисления и дата-центры. Используя новые протоколы доступа, CXL объединяет память разных типов в единую систему, убирая ограничения производительности и памяти DIMM.

Работает CXL - следующим образом:

Принцип работы CXL
  • Когда процессору необходимо выполнить задачу, которую можно выполнить на вычислительном ускорителе, он отправляет запрос по интерфейсу CXL на ускоритель. Затем ускоритель извлекает необходимые данные из когерентной памяти, выполняет задачу и отправляет результаты обратно на процессор по интерфейсу CXL.
  • Если система запущена на виртуальной машине, интерфейс CXL можно использовать для передачи задач с центрального процессора на ускоритель, назначенный конкретно для виртуальной машины. Ускоритель связывается с виртуальной машиной через CXL, выполняя задачи и обмениваясь данными по мере необходимости, при этом не обращаясь к CPU.
  • В случае с контейнерами, интерфейс CXL можно использовать для того, чтобы несколько контейнеров могли совместно использовать доступ к одному и тому же ускорителю. Центральный процессор также будет взаимодействовать с ускорителем через интерфейс CXL, а сам ускоритель будет работать с контейнерами аналогичным образом, выполняя задачи и обмениваясь данными без обращения к CPU.

История CXL

Некоторые ключевые факты:

  • Интерфейс CXL появился в 2019 году по инициативе Intel, Google, Cisco и других компаний для устранения «узких мест» в обмене данными между CPU, GPU и RAM.
  • Технология объединила преимущества PCIe с когерентной памятью, ускорив взаимодействие в гетерогенных системах.
  • Улучшенная производительность позволила эффективнее использовать ресурсы и нашла свое применение в центрах обработки данных, облачных и HPC-задачах.
  • Сегодня CXL — ключевой стандарт индустрии.
  •  Развитие CXL
    Спецификации CXL:
    • CXL  1.0 и 1.1 — определяют интерфейс управления памятью, позволяя динамически распределять ее пулы между CPU и ускорителями GPU, FPGA и TPU;
    • CXL  2.0 — расширяет возможности за счет поддержки пулов общей RAM, совместно используемых несколькими устройствами, а также введения переключателей CXL, которые упрощают топологию сети;
    • CXL  3.0 — согласно заявленной спецификации, удваивает пропускную способность по сравнению с CXL 2.0, снижает энергопотребление и задержку, а также улучшает возможности построения архитектуры кластера CXL.
    • CXL  3.1 представляет собой минорное обновление CXL 3.0 2023 года выпуска, оптимизированное для лучшей работы и совместимости с решениями на базе PCIe 6.0.
    • CXL  3.2 является новейшей версией интерфейса, которая вышла в конце 2024 года. Это решение имеет обновленный модуль мониторинга горячих страниц CXL (CHMU) для многоуровневой памяти, расширенную функциональность и возможности управления CXL-устройствами для оптимизации работы приложений и ОС, а также различные улучшения механизмов безопасности, например, интеграция протокола TSP и расширенная защита IDE.
     Развитие CXL

    Протоколы CXL

    CXL Как и любые другие интерфейсы имеет уникальные протоколы передачи данных:
    • CXL.io. Универсальный протокол, основанный на PCIe 5.0 с рядом модификаций, обеспечивающий настройку, инициализацию, обнаружение, прямой доступ к памяти и регистрам ввода/вывода, а также другие возможности с использованием когерентных сигналов загрузки/сохранения данных. По сути, этот протокол повторяет функциональность протокола PCIe.
    • CXL.cache. Протокол, определяющий взаимодействие между хостом и устройством, который позволяет периферийным устройствам согласовано обращаться к памяти процессора и кэшировать информацию с с низкой задержкой.
    • CXL.mem. Протокол, позволяющий центральному процессору согласовано обращаться к памяти, подключенной к устройству, с помощью команд ввода/вывода как для оперативной памяти, так и для флэш-памяти.
    Благодаря этим протоколам, CXL может настроить доступ к памяти минуя прямое обращение к процессору, обеспечивая при этом минимальные задержки и увеличивая производительность системы. Это обуславливается возможностью кэширования данных как CPU, так и вычислительных ускорителей. Ранее, в устройствах PCIe, память не подвергалась высокой нагрузке, но интерфейс CXL позволяет задействовать вычислительные ресурсы памяти, увеличивая общую эффективность работы сетевой инфраструктуры.

    Устройства, поддерживающие CXL

    Существует 3 типа устройств, которые поддерживают протоколы интерфейса CXL:

    • Первый тип — ускорители без интегрированной оперативной памяти, поддерживающие протоколы CXL.io и CXL.cache. К таким решениям относятся различные сопроцессоры и умные сетевые карты SmartNIC. Подобные продукты имеют контентный доступ к оперативной памяти CPU с кэшированием информации при обработке данных.
     Развитие CXL
    Схема работы CXL-ускорителей без интегрированной памяти.
    • Второй тип — ускорители вычислений, уже имеющие встроенную оперативную память и поддерживающие протоколы CXL.io, CXL.cache и CXL.mem. Примеры подобных решений: чипы GPU, ASIC или FPGA. Такие решения могут самостоятельно получать доступ к оперативной памяти хоста, а также предоставлять ее CPU, предварительно кэшируя данные и образуя адаптивную систему вычислений.
     Развитие CXL
    Схема работы CXL-экспандера с интегрированной памятью.
    • Третий тип — расширители памяти, использующие протоколы CXL.io и CXL.mem. Эти решения не имеют собственных вычислительных ресурсов, но могут предоставлять центральному процессору кэшируемый доступ к дополнительной оперативной или персистентной памяти.
     Развитие CXL
    Схема работы модуля CXL-памяти.

    Все три типа CXL-решений совместимы со стандартным набором PCIe-устройств, увеличивая количество решений, которые можно интегрировать в современные вычислительные системы.

    CXL против PCIe

    Несмотря на то, что CXL и PCIe являются высокоскоростными интерфейсами передачи данных, их функциональные возможности и сценарии использования принципиально отличаются. CXL, построенный на физическом уровне PCIe 5.0/6.0, расширяет его функционал за счет поддержки когерентности памяти, что позволяет CPU, GPU, FPGA и другим акселераторам эффективно разделять общие ресурсы памяти без избыточного копирования данных, что критично для задач искусственного интеллекта, машинного обучения и высокопроизводительных вычислений. CXL фокусируется на снижении задержек и обеспечении согласованного доступа к памяти, устраняя узкие места в гетерогенных средах, где традиционные PCIe - устройства не могут синхронизировать кэш. В свою очередь, стандарт PCIe остается универсальным интерфейсом, который используется для подключения периферийных устройств (видеокарт, SSD, сетевых карт), в особенности в потребительском сегменте рынка. Это говорит о том, что оба стандарта, по всей видимости, будут использоваться в разных направлениях вычислительных устройств — PCIe в пользовательских решениях, а CXL в коммерческом сегменте с масштабируемыми кластерами.

    Альтернативные технологии

    Помимо интерфейса CXL, на рынке существует ряд других открытых стандартов межсоединения, которые имели большие перспективы, но в процессе были поглощены консорциумом CXL. Ознакомимся со стандартами, которые вошли в экосистему CXL:
    • CCIX (Cache Coherent Interconnect for Accelerators) — интерфейс, который разработан для обеспечения когерентности между CPU и сторонними ускорителями (FPGA, GPU) через PCIe 4.0, поддерживая симметричную модель когерентности, что позволяет подключать разные компоненты в одной системе без зависимости от бренда устройств. С появлением CXL 3.0 часть функций CCIX была интегрирована в его экосистему, что снизило конкурентоспособность CCIX.
     Развитие CXL
    • Gen-Z — стандарт, который фокусируется на масштабировании памяти на уровне серверных стоек и центров обработки данных, используя семантику памяти для прямого доступа к распределенным пулам памяти с низкой задержкой, что минимизирует перемещение данных и энергопотребление. К 2021 году Gen-Z прекратил самостоятельное развитие, передав свои спецификации консорциуму CXL.
    Обзор технологии интерконнекта Gen-Z.
    • OpenCAPI (Open Coherent Accelerator Processor Interface) — интерфейс, созданный IBM для систем POWER, обеспечивает высокую пропускную способность (до 25 ГБ/с на канал) и когерентность между CPU и ускорителями, но в 2022 году также был интегрирован в CXL, что ограничило его независимое применение.
     Схема работы интерконнекта OpenCAPI
    Схема работы интерконнекта OpenCAPI.

    Реальные устройства Hardware

    Рассмотрим подробнее, какие случаи использования можно найти в реальных устройствах. Один из примеров — CXL-экспандер, то есть расширитель оперативной памяти. Это PCIe-плата, на которой работает чип CXL. С помощью ее мы можем подключить дополнительный пул оперативной памяти.

    На снимке выше — CXL‑экспандер с двумя DIMM‑слотами, поддерживающий ECC‑модули RAM объемом до 128  ГБ и работающий по интерфейсу PCIe  Gen 5  x8. При этом не только увеличивается объем оперативной памяти сервера, но появляются и другие преимущества.

    Экспандеры — это только вершина айсберга. Есть много периферийных устройств, которые позволяют использовать CXL, в том числе и для отладки.

    Уже началась интеграция чипов CXL в крупные проекты. Например, Lenovo SR860  V3 в сотрудничестве с компанией ASTERA LABS разработали платформу, способную вместить 96  модулей DIMM до 512  ГБ каждый, что в сумме дает почти 50  ТБ оперативной памяти! Однако главное — это даже не объем. Платформа может делиться этой памятью с другими серверами посредством CXL в пределах одного дата-центра.

    Актуальные операционные системы с поддержкой CXL 2.0

    CXL 2.0 уже встроен в современные ядра Linux и поддерживается крупными дистрибутивами. Это позволяет расширять память через устройства Type-3, формировать пулы памяти и работать с NUMA-доменами CXL. 

    Red Hat Enterprise Linux

    • RHEL 9.2+ — в релиз-нотах указаны драйверы CXL: cxl_core, cxl_port, cxl_acpi, cxl_mem для endpoint-устройств и свитчей памяти. 

    • RHEL 9.4/9.5/9.6 — ветка 9 продолжает поставлять ядро с CXL-стеком; см. общие релиз-ноты RHEL 9.4/9.5/9.6 и руководства по переходу на 9, где компоненты cxl-cli/cxl-devel доступны в репозиториях 9.x. 

    • Дополнительно: в пакете аппаратной сертификации RHEL есть отдельный тест memory_CXL для устройств Type-3, что подтверждает поддержку на уровне платформы и инструментов проверки. 

    SUSE Linux Enterprise Server

    • SLES 15 SP6/SP7 — дистрибутив для серверов на AMD EPYC/Intel Xeon, официальные материалы SUSE по тюнингу для EPYC 9005 описывают использование линий как CXL 2.0 links, что отражает поддержку стека в ядре и платформенной интеграции. 

    • SLES 16 — релиз-ноты отмечают поддержку машинных проверок для памяти CXL, что важно для эксплуатации и мониторинга. 

    Ubuntu LTS

    • Ubuntu 24.04 LTS — ядро 6.8 содержит CXL-драйверы; в списках обновлений безопасности прямо упоминаются CXL drivers, что подтверждает наличие стека в стандартном ядре дистрибутива. 

    • Ubuntu 22.04.5 LTS — при установке HWE-ядра 6.8 (стандарт для 22.04.5) доступны те же CXL-компоненты; см. официальную схему HWE и таблицу, где 22.04.5 использует ядро 6.8. 

    • В официальных man-страницах Ubuntu есть libcxl и инструменты работы с CXL, указывающие на поддержку пространства /sys и пользовательских утилит. 

    Что с Windows Server

    Windows Server 2025 — продукт доступен и поддерживается по LTSC, однако в публичной документации Microsoft на момент подготовки нет прямого описания поддержки CXL Type-3 устройств на уровне ОС. 

    Microsoft активно публикует исследования и материалы по CXL для облачных сценариев и память-пулинга, но это не является официальным описанием функционала ОС. Для он-прем подтверждения следует ожидать профильные документы по драйверам и ролям, которых пока нет в открытых гайдах. 

    Поддержка CXL 2.0 уже де-факто доступна в серверных Linux-дистрибутивах актуальных веток RHEL, SLES и Ubuntu LTS. По мере выхода CXL-коммутаторов и зрелости устройств в EDSFF список поддерживаемых версий будет расширяться, а производители дистрибутивов добавят новые утилиты и профили мониторинга. Для Windows Server официальные материалы о полноценной поддержке CXL Type-3 пока не опубликованы. 

    Также поддержка CXL 2.0 уже официально сертифицирована на платформах ведущих вендоров — в матрицах совместимости Dell, Lenovo, HPE и xFusion перечислены актуальные выпуски RHEL, SLES и Ubuntu LTS для конкретных моделей серверов. 

    Заключение

    Несмотря на то, что в данный момент интерфейс CXL не так распространен, как его главный конкурент PCIe, открытый стандарт активно развивается и все больше высокотехнологичных IT-компаний интегрируют его в свои передовые устройства. Ввиду всех преимуществ, которые предлагает CXL, уже не за горами тот момент, когда этот стандарт полностью вытеснит PCIe из коммерческого сегмента рынка, полностью закрыв все потребности современных кластерных систем. Тем не менее, конкуренты не дремлют, и в индустрии постепенно появляются новые игроки, которые предлагают более интересный функционал, который сможет удовлетворить требования как современных, так и будущих вычислительных систем, причем, включая даже пользовательские устройства.

    Источники:

    • https://serverflow.ru/blog/ stati/chto-takoe-standart-cxl-budushchiy-preemnik-pcie/?ysclid=mkl7sqgs5449430993
    • https://selectel.ru/blog/cxl-interconnect-testing
    • https://itelon.ru/blog/cxl-pamyat-dlya-it-infrastruktury-nizhe-zaderzhki-vyshe-gibkost

Прочее :