Решение CXL Memory: что это такое?

Вас когда-нибудь раздражало, что на компьютере заканчивается память, но добавить её так же просто, как подключить USB-накопитель? Технология CXL была разработана специально для решения этой проблемы. Она функционирует как “система внешнего расширения” памяти, позволяя серверам или рабочим станциям гибко подключать большие объемы внешней памяти с помощью специальных кабелей и карт расширения, а также давая возможность нескольким машинам совместно использовать общий пул памяти. Благодаря технологии CXL 1 ТБ системной памяти — что раньше было доступно только на дорогостоящих мэйнфреймах — становится все более распространенным явлением в сфере высокопроизводительных вычислений и искусственного интеллекта.

Что такое CXL? Заголовок статьи: CXL Memory Solution: Что это такое?

Почему появился CXL?

Традиционную память сервера можно представить как большой жилой дом с отдельными кладовыми: каждая комната (каждый сервер) имеет собственное место для хранения, но его размер фиксируется при заселении, и даже если кладовая соседа пуста, вы не можете ее занять. С развитием искусственного интеллекта, облачных вычислений и больших данных эта модель начала демонстрировать три серьезные проблемы.

Когда физические слоты будут заняты, добавить дополнительную память будет невозможно. Количество слотов для памяти на материнской плате каждого сервера ограничено — как правило, восемь, двенадцать или шестнадцать. Даже если заполнить каждый слот модулями памяти максимальной емкости, доступными на рынке, общая емкость все равно достигнет предельного значения. Когда вашему приложению требуется больше памяти, чем позволяет этот предел, единственным решением является покупка более дорогого сервера высшего класса, а не просто добавление памяти к существующему оборудованию.

Ресурсы памяти не могут использоваться совместно, что приводит к огромным потерям. В крупных центрах обработки данных пиковые нагрузки на различные серверы часто приходятся на разное время. Однако в традиционной архитектуре эти простаивающие ресурсы памяти не могут быть “заимствованы” серверами, которые в них нуждаются. Отраслевая статистика показывает, что загрузка памяти в центрах обработки данных зачастую не превышает пятидесяти процентов, а это означает, что почти половина инвестиций в оборудование простаивает без дела.

Чтобы справиться с внезапным ростом спроса, компании вынуждены вкладывать чрезмерные средства. Когда проекту время от времени требуется вдвое больше памяти, чем обычно, традиционным решением является покупка оборудования, рассчитанного на пиковую нагрузку. При этом средства тратятся на ресурсы, которые большую часть времени простаивают. Кроме того, после установки таких аппаратных модулей их невозможно гибко перераспределять между разными проектами или легко расширять по мере роста бизнеса.

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

Что такое CXL и как он работает?

CXL — это открытый протокол связи, основанный на стандартном физическом интерфейсе PCIe. Его полное название — Compute Express Link, и его можно рассматривать как набор “языковых правил”, обеспечивающих высокоскоростную, согласованную связь с низкой задержкой между ЦП и внешними устройствами памяти. Уникальность CXL заключается в том, что он позволяет ЦП обращаться с внешней памятью так, как если бы она была частью его собственного корпуса, а не периферийным устройством, для доступа к которому требуется обходной путь.

Когерентность кэша

Представьте себе следующую ситуацию: вы и ваш коллега редактируете один и тот же онлайн-документ. Если каждый из вас сохранит локальную копию, а затем внесет в нее изменения, при слиянии копий возникнут конфликты — чьи изменения будут приняты? Память компьютера сталкивается с той же проблемой. Внутри ЦП находится очень быстрая небольшая область хранения, называемая “кэшем”, в которой хранятся копии недавно использованных данных из основной памяти. Когда ЦП обращается к памяти, он сначала считывает данные из кэша, что происходит гораздо быстрее. Но если и локальная память DDR, и внешняя память CXL содержат копии одних и тех же данных, и одна копия изменяется, другая копия должна быть обновлена соответствующим образом. В противном случае ЦП может прочитать неверные данные. Эта проблема называется “когерентностью кэша”. CXL включает в себя специальный подпротокол для решения этой задачи, постоянно “обменивающийся данными” между ЦП и внешней памятью, чтобы обеспечить согласованность всех копий.

Объединение памяти в пулы и гибкое выделение памяти

При традиционном подходе каждый сервер может использовать только память, установленную в его собственных слотах. CXL представляет концепцию “объединения ресурсов”: к коммутатору CXL можно подключить несколько устройств памяти CXL, сформировав единый пул памяти большой емкости, а затем позволить нескольким серверам “черпать” память из этого пула по мере необходимости. Это похоже на то, как в офисном здании отдельные кулеры в каждом кабинете заменяют центральной питьевой колонкой в коридоре, из которой каждый может набирать воду по мере необходимости. Общая емкость станции может быть меньше, чем сумма емкостей десяти отдельных кулеров, но при этом она все равно удовлетворяет потребности всех, поскольку пиковые нагрузки не совпадают. Точно так же пул памяти CXL позволяет менеджерам центров обработки данных динамически распределять память в зависимости от нагрузки каждого сервера в режиме реального времени — предоставляя больше ресурсов при высокой загрузке и освобождая их при простоях — тем самым обеспечивая выполнение большего количества вычислительных задач с меньшим общим объемом аппаратного обеспечения.

Пул памяти CXL и коммутаторы CXL Memory Solution: что это такое?

Что включает в себя технология CXL?

CXL — это комплексное решение для памяти, которое охватывает все: от физического оборудования до программной настройки. Можно представить эту систему как автомагистраль: сама дорога (физическое соединение) — это лишь основа; также нужны правила дорожного движения (протокол связи), чтобы транспортные средства двигались упорядоченно, и система управления движением (конфигурация программного обеспечения), которая указывает транспортным средствам, куда ехать и по какой полосе движения. Без какого-либо из этих уровней автомагистраль не сможет полноценно функционировать.

Аппаратный уровень: видимые компоненты

Физическая часть технологии CXL включает в себя различные типы устройств, которые в совокупности формируют инфраструктуру для расширения памяти. Наиболее распространенным аппаратным устройством является плата расширения памяти CXL, которая внешне напоминает видеокарту и может подключаться непосредственно к имеющемуся слоту PCIe на материнской плате сервера. На этой плате могут быть как впаянные микросхемы памяти, так и слоты для модулей памяти. После установки система распознает дополнительный объем памяти. Другой аппаратный форм-фактор — это модуль памяти CXL, который меньше по размеру (похож на компактный твердотельный накопитель) и может устанавливаться в специальные отсеки для дисков на сервере, что делает его подходящим для развертываний с высокой плотностью.

Типы аппаратного обеспечения CXL Решение CXL Memory: что это такое?

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

Уровень протокола: языковые правила взаимодействия

Решение для памяти CXL на уровне протокола CXL: что это такое?

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

  • Первый подпротокол называется CXL.io, и его задача заключается в обнаружении и инициализации устройств. Когда вы вставляете карту памяти CXL в сервер, CXL.io отвечает за то, чтобы процессор распознал устройство, считал его основные данные (такие как емкость и поддерживаемые режимы) и выделил для него адресное пространство. Этот процесс очень похож на подключение видеокарты или сетевой карты.
  • Второй подпротокол называется CXL.cache, что является одной из ключевых функций CXL. CXL.cache обеспечивает согласованность данных между кэшем процессора и внешней памятью. Как уже упоминалось ранее, когда процессор изменяет какой-либо фрагмент данных, CXL.cache гарантирует, что соответствующая копия во внешней памяти также будет обновлена, и наоборот.
  • Третий подпротокол называется CXL.mem, который отвечает за непосредственное чтение и запись данных. Когда ЦП необходимо прочитать данные из памяти CXL, модуль CXL.mem передает запрос и возвращает данные; когда ЦП необходимо записать данные в память CXL, модуль CXL.mem аналогичным образом осуществляет передачу.

Программный уровень: настройка и управление для обеспечения бесперебойной работы

Настройка программного обеспечения позволяет операционной системе и приложениям фактически использовать эту новую память. В BIOS администратору необходимо включить функциональность CXL и выделить ресурсы. На уровне операционной системы, если взять в качестве примера Linux, память CXL распознается как отдельный узел NUMA, и администратор может с помощью команд указать, следует ли программе отдавать предпочтение локальной памяти или памяти CXL. Современные операционные системы также поддерживают многоуровневую организацию памяти, которая автоматически сохраняет наиболее активные данные в быстрой локальной памяти DDR и перемещает менее активные данные в память CXL. Подавляющему большинству приложений не требуется никаких изменений кода для использования памяти CXL, поскольку операционная система управляет ею так же, как и обычной памятью.

oscoo 2b баннер 1400x475 1 Решение CXL Memory: что это такое?

CXL и традиционные решения для хранения данных

АспектТрадиционное решение DDRРешение CXL
Максимальная мощностьОграничено количеством слотов для памяти на материнской плате и максимальным объемом модулей; после достижения предельного значения дальнейшее расширение невозможноМожно продолжать расширять объем памяти с помощью карт расширения или коммутаторов CXL без замены материнской платы
Гибкость ресурсовОбъем памяти каждого сервера фиксирован; её нельзя перераспределять между серверамиПоддерживает объединение пулов памяти; несколько серверов могут по мере необходимости совместно использовать общий пул памяти
Экономическая эффективностьПриобретение большого объема памяти для удовлетворения пиковых нагрузок; ежедневная загрузка часто не превышает 50 %Обеспечивает обработку того же объема рабочей нагрузки с меньшим объемом общей памяти; коэффициент загрузки может превышать 80%
Операция расширенияТребуется выключение системы и физическая установка/извлечение модулей памяти; может потребоваться замена оборудованияПоддерживает «горячую» замену и динамическое распределение; позволяет добавлять или удалять ресурсы памяти в режиме реального времени
Подходящие сценарииНебольшие системы с высокими требованиями к производительности и стабильной нагрузкойКрупные центры обработки данных, обучение моделей искусственного интеллекта, облачные вычисления и другие сценарии, требующие эластичных ресурсов

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

Варианты применения CXL

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

Искусственный интеллект и обучение больших моделей

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

Объединение пулов памяти в центре обработки данных

В крупных облачных дата-центрах пиковые нагрузки у разных арендаторов и приложений часто возникают в разное время. Благодаря внедрению коммутаторов CXL и пула памяти CXL дата-центр может объединять всю незанятую память в общий пул и динамически распределять её в соответствии с текущими потребностями каждого сервера. По оценкам отрасли, такой подход позволяет повысить коэффициент использования памяти с обычных 40–50 % до более 80 %, а это означает, что при тех же инвестициях в оборудование можно обрабатывать почти вдвое большую вычислительную нагрузку.

Облачные вычисления и плотность виртуальных машин

Поставщики облачных услуг стремятся запускать как можно больше виртуальных машин (ВМ) на одном физическом сервере, чтобы увеличить доход. Однако каждой ВМ необходимо выделить фиксированный объем памяти, и даже если эта память фактически используется не в полной мере, она не может быть задействована другими ВМ. В результате на серверах часто заканчивается память задолго до того, как исчерпаются ресурсы ЦП, что ограничивает количество создаваемых ВМ. Пул памяти CXL позволяет облачной платформе рассматривать память как эластичный ресурс для переподписки или динамической настройки: когда ВМ использует меньше памяти, чем выделено, излишек можно освободить и передать другим ВМ. Эта технология позволяет поставщикам облачных услуг размещать больше арендаторов на одних и тех же физических серверах, снижая эксплуатационные расходы.

Помимо этих трех основных сценариев применения, CXL также используется в крупномасштабных вычислениях в сфере высокопроизводительных вычислений, для расширения емкости баз данных, работающих в памяти (таких как SAP HANA), а также для ускорения работы механизмов анализа больших данных в режиме реального времени (таких как Apache Spark). Общим для этих приложений является очень высокий спрос на объем памяти в сочетании с определенной терпимостью к задержкам — именно в этом диапазоне CXL демонстрирует свои преимущества.

Текущее состояние и перспективы развития CXL

Технология CXL перешла из лабораторной стадии в стадию реального внедрения. Что касается аппаратного обеспечения, процессоры Intel Xeon Scalable 4-го поколения и AMD EPYC 4-го поколения изначально поддерживают CXL 1.1 или 2.0. Крупные поставщики серверов, такие как Dell, HPE, Inspur и Supermicro, предлагают варианты памяти CXL в своих линейках высокого класса. Samsung и Micron в настоящее время серийно производят модули памяти CXL объемом от 128 ГБ до 512 ГБ, некоторые из которых поддерживают горячую замену. С точки зрения программного обеспечения, ядро Linux изначально поддерживает CXL начиная с версии 5.18, а основные облачные операционные системы постепенно улучшают объединение ресурсов памяти CXL.

В перспективе развитие CXL происходит по двум основным направлениям. Первое — это обновление протокола. В CXL 2.0 были введены объединение ресурсов памяти и поддержка коммутаторов, которые уже проходят испытания. CXL 3.0 увеличивает пропускную способность до 64 ГБ/с и добавляет многоуровневую коммутацию, которая, как ожидается, получит распространение после 2026 года. CXL 4.0, основанный на PCIe 7.0, планируется снова примерно удвоить пропускную способность. Второе направление — это эволюция внедрения. В краткосрочной перспективе CXL выступает в качестве памяти “второго уровня”, дополняющей локальную DDR. В среднесрочной перспективе объединение памяти станет стандартом в крупных центрах обработки данных, что сделает память динамически распределяемой, как вычислительные ресурсы и хранилища. В долгосрочной перспективе CXL и DDR, вероятно, будут сосуществовать: DDR — для рабочих нагрузок ядра, чувствительных к задержкам, а CXL — для совместно используемой памяти расширения большой емкости.

Технология CXL появилась в качестве ответа на вопрос, который давно волновал компьютерную индустрию: почему память нельзя гибко расширять и совместно использовать, как хранилище? Благодаря продуманной архитектуре протокола технология CXL реализует такие ключевые возможности, как когерентность кэша и объединение ресурсов памяти, на базе существующей инфраструктуры PCIe. От аппаратного обеспечения до программного обеспечения, от расширения отдельных машин до совместного использования ресурсов в масштабах всего центра обработки данных — CXL постепенно меняет наше представление о памяти. Конечно, эта технология все еще находится на ранней стадии развития; для достижения зрелости протокола, полноты экосистемы и снижения затрат потребуется время. Но можно с уверенностью сказать, что по мере роста моделей ИИ и преодоления объемом данных физических ограничений CXL — технология, освобождающая память от фиксированных слотов — станет все более важной частью инфраструктуры в мире высокопроизводительных вычислений.

滚动至顶部

Свяжитесь с нами

Заполните форму ниже, и мы свяжемся с вами в ближайшее время.

Продукт контактной формы