Top.Mail.Ru
Что такое SRAM-память — от CPU кэша к ИИ-ускорителям | Блог Serverflow Скачать
прайс-лист
Бесплатная
доставка по РФ
Бонус за
обратную связь
Интернет-магазин
Серверного оборудования
8 (800) 222-70-01 Консультация IT-специалиста Сравнение

Что такое SRAM-память — от CPU кэша к ИИ-ускорителям

~ 15 мин
52
Средний
Статьи
Что такое SRAM-память — от CPU кэша к ИИ-ускорителям

Введение

Когда мы слышим словосочетание “высокоскоростная память”, в голове невольно всплывает память HBM. Это совсем неудивительно — благодаря передовым ИИ-ускорителям Nvidia и AMD, HBM стала буквально ассоциироваться с огромной пропускной способностью, требуемой для ИИ-вычислений. Скорости High Bandwidth Memory действительно очень высоки, однако назвать ее самой быстрой памятью некорректно, ведь есть еще один тип памяти, пропускная способность которой всегда давала и будет давать фору как текущим, так и всем будущим поколениям HBM. Если вы подумали, что это какой-то принципиально новый тип хранилища горячих данных для GPU вычислений, разработанный в сверхсекретных лабораториях Nvidia, то это совсем не так. Вы не поверите, но речь о SRAM — да-да, той самой памяти, которая на протяжении более 60 лет с 1963 года использовалась исключительно в роли кэша центральных процессоров и оперативки для микроконтроллеров. В этой статье специалисты компании ServerFlow расскажут вам, что из себя представляет SRAM-память, как ей удается достигать скорости в десятки и сотни ТБ/с и сравним ее с HBM и DRAM.

Что такое SRAM-память

По традиции, погрузимся в сухую теорию. Static Random-Access Memory (SRAM, статическая память) — это тип энергозависимой памяти, которая хранит каждый бит информации в схеме из нескольких транзисторов, образующих так называемую бистабильную ячейку. Статической эта память называется не просто так — дело в том, что пока ячейки памяти SRAM получают питание, записанные на них данные остаются неизменными и не требуют постоянного обновления заряда, в отличие от динамических DRAM и HBM, которые не могут работать без постоянной подзарядки конденсаторов. Из этой особенности и вытекает ключевая характеристика SRAM — ее феноменальная скорость. Ввиду статической логики, в SRAM бит хранится не в виде заряда, а в виде состояния простого логического элемента — ячейки из нескольких транзисторов, который находится в одном из двух устойчивых положений: единица или ноль. Чтобы прочитать данные из SRAM, не нужно заряжать никаких конденсаторов до нужного напряжения и ждать, пока усилитель уловит слабый сигнал. В SRAM данные готовы к чтению практически мгновенно, стоит только запросить доступ к ней. Задержка измеряется единицами наносекунд против десятков наносекунд у DRAM.

Массив ячеек SRAM-памяти
Блок статической оперативной памяти SRAM, состоящий из массива ячеек. Источник: Habr.

SRAM память делится на 4 разновидности по количеству транзисторов в ячейке, и каждый тип SRAM отличается своими преимуществами и недостатками:
  • 4T-ячейка: вместо p-канальных транзисторов используются высокоомные резисторы. Плюс — в теории, меньшая площадь. Минус — постоянный ток утекает через нагрузочные резисторы, из-за чего энергопотребление оказывается выше, чем у 6T. В современных решениях этот тип SRAM практически не применяется.
Схема 4T-ячейки памяти SRAM
Схема 4T-ячейки памяти SRAM. Источник: Wikipedia.
  • 6T-ячейка: золотой стандарт, обеспечивающий оптимальный баланс между площадью, стабильностью и энергопотреблением. Именно она занимает до 60% площади современных систем на кристалле (SoC), применяется в качестве кэш-памяти CPU и применяется новейших ИИ-ускорителях.
Схема 6T-ячейки памяти SRAM
Схема 6T-ячейки памяти SRAM. Источник: ViksNewsletter.
  • 8T-ячейка: добавляет два транзистора, позволяя одновременно читать и записывать данные, что значительно увеличивает пропускную способность, но ценой примерно 15-20% дополнительной площади ячейки.
Схема работы 8T-ячейки SRAM
Схема работы 8T-ячейки SRAM. Источник: Researchgate.
  • 10T-ячейка: дальнейшее развитие SRAM с дополнительными транзисторами для ускорения чтения и записи, оптимизированный для работы при сверхнизких напряжениях питания.
Схема работы 10T-ячейки SRAM
Схема работы 10T-ячейки SRAM. Источник: Researchgate.

За огромную скорость SRAM приходится платить площадью. К примеру, самая распространенная SRAM-ячейка состоит из шести транзисторов, в то время как DRAM-ячейка — это всего один транзистор и один конденсатор. Разница в количестве элементов на бит — в несколько раз. А поскольку на кристалле фиксированного размера можно разместить лишь определенное количество транзисторов, то SRAM-памяти получается намного меньше, чем DRAM, при тех же производственных затратах. Отсюда и крошечные объемы: от нескольких килобайт, как в кэш-памяти CPU, до 500 мегабайт на ускоритель или нескольких сотен гигабайт на стойку, в то время как DRAM исчисляется в гигабайтах и терабайтах. Очевидно, что по тем же причинам цена за бит у SRAM на порядки выше, и ее используют только там, где скорость критична — в кэшах процессоров и буферах высокопроизводительных чипов.

Казалось бы можно просто перейти на более мелкий техпроцесс, чтобы самым очевидным путем разместить больше транзисторов на кристалле SRAM, но увы, пока это невозможно. Долгое время считалось, что с переходом на более тонкие техпроцессы ячейка SRAM действительно будет уменьшаться почти так же линейно, как и логические вычислительные элементы. Но начиная 5-нм техпроцесса выяснилось, что из-за архитектуры SRAM-ячеек при дальнейшем сжатии транзисторов ухудшается их стабильность, растут утечки тока, а сама ячейка перестает надежно хранить данные без дополнительных ухищрений. Например, на 3-нм техпроцессе плотность SRAM составляет всего около 38 мегабайт на квадратный миллиметр, против как минимум сотни мегабайт, как предсказывали старые дорожные карты. Ввиду этого, индустрии приходится искать иные способы масштабировать объем SRAM, о которых мы поговорим позднее.

SRAM vs DRAM vs HBM

Чтобы понять, где место SRAM в современной архитектуре, нужно четко видеть ее позиционирование относительно других типов памяти. Рынок сегодня определяют три игрока с радикально разными характеристиками, и выбор между ними — это всегда компромисс.
  • SRAM — безусловный чемпион по скорости. Данные доступны практически мгновенно (задержка менее 10 нс), никаких циклов обновления, стабильность работы на максимальных частотах. Расплачиваемся мы за это площадью кристалла: одна ячейка SRAM требует в 4-6 раз больше транзисторов, чем ячейка DRAM. Это означает, что на том же техпроцессе вы получите заметно меньший объем, а цена за бит будет на порядки выше. При этом, масштабирование SRAM практически остановилось: площадь ячейки почти не уменьшается при переходе на более современные техпроцессы, что делает дальнейшее наращивание объемов на чипе крайне затратным.
  • DRAM — массовый стандарт основной памяти. Один транзистор и один конденсатор на ячейку дают беспрецедентную плотность и низкую цену за бит. Но задержки здесь на порядок выше: 50-100 нс на первый доступ, плюс необходимость в регулярных циклах обновления, во время которых память недоступна для чтения или записи.
  • HBM — это, строго говоря, не отдельный тип памяти, а компоновка из множества слоев DRAM, упакованных в вертикальную стопку. Плюс — бешеная пропускная способность (1,2 ТБ/с на стек HBM3E) за счет широкой шины в 1024 бита, которая позволяет передавать огромные объемы данных параллельно. Минус — цена, сложность производства и все та же DRAM-овская задержка, которая остается на уровне десятков наносекунд. HBM отлично подходит для непрерывной передачи массивов данных в ИИ-ускорителях, но по времени реакции до первого байта она в разы уступает SRAM.
Иерархия пропускной способности SRAM, HBM и DRAM
Иерархия разных типов памяти по пропускной способности. Источник: Centron.

Сценарии использования SRAM-памяти

Благодаря своей феноменальной скорости и низкой задержке SRAM стала незаменимым компонентом во тех случаях, где данные нужны здесь и сейчас. 

SRAM в центральных процессорах

Как мы уже говорили, SRAM традиционно использовалась в качестве кэш-памяти от L1 до L3 в центральных процессорах, чтобы хранить наиболее горячие данные ближе к вычислительному кристаллу. 
  • Кэш первого уровня (L1) самый быстрый и расположен максимально близко к исполнительным блокам ядра, но его размер ограничен 32-64 КБ на инструкции и столько же на данные. Здесь используются 8T-SRAM ячейки, оптимизированные на минимум задержки, и зачастую применяется раздельная Гарвардская архитектура с независимыми шинами для инструкций и данных. Время доступа составляет 1-3 такта процессора. 
  • Кэш второго уровня (L2) крупнее: 256 КБ — 1 МБ на ядро или на пару ядер, в зависимости от дизайна. Здесь уже используется более плотная 6T-SRAM, которая дает большую емкость ценой небольшого увеличения задержки до 10-20 тактов.
  • Кэш третьего уровня (L3, или LLC — Last Level Cache) — самый вместительный: от 2 до 192 и более МБ, общий для всех ядер процессора. Он реализован на высокоплотной 6T-SRAM с низким энергопотреблением в режиме удержания данных. Задержка L3 составляет 20-50 тактов, но его роль — не столько в скорости, сколько в том, чтобы не пускать запросы в DRAM. Каждый промах мимо L3 означает поход в основную память, а это уже 100 и более тактов простоя. 
Иерархия SRAM-кэша в CPU
Иерархия SRAM-кэша в CPU. Источник: Habr.

SRAM в ИИ-ускорителях

Когда индустрия вспомнила о преимуществах SRAM-памяти, у ряда ИИ-стартапов появилась перспективная идея: “Раз уж SRAM такая быстрая, то почему бы не начать использовать ее в ИИ-ускорителях?”. Так память, которая десятилетиями использовалась в кэше центральных процессоров, перекочевала в индустрию ИИ-вычислений, и она пришлась там как нельзя кстати.

Инференс больших языковых моделей, а именно фаза декодирования (генерация каждого следующего токена), упирается не столько в вычислительную мощь ядер, сколько в скорость, с которой можно вытащить веса модели из памяти. В HBM эта скорость ограничена шириной шины и достигает 3.35-8 ТБ/с у топовых GPU. Но если сделать память прямо на кристалле и использовать SRAM, пропускная способность взлетает до десятков, а то и сотен терабайт в секунду. Именно поэтому мы видим, как ускорители вроде Groq 3 LPU (150 ТБ/с) в реальных задачах обходят того же конкурента на HBM3e более чем на 140%, хоть и объем SRAM-памяти оставляет желать лучшего.

Давайте рассмотрим передовые ИИ-ускорители, которые первыми начали внедрять SRAM-память вместо традиционной HBM:
  • Groq 3 LPU. Классический пример ставки на чистую SRAM в качестве основной памяти для хранения весов, а не просто кэша. Третье поколение чипа Groq 3 LPU несет на борту 500 МБ встроенной SRAM и обеспечивает пропускную способность памяти в 150 ТБ/с. Благодаря этому Groq выдает от 750 до 1665 токенов в секунду при батче 1, но за это приходится платить: для запуска моделей уровня Llama-3 70B требуются сотни чипов, собранных в стойки LPX.
Плата ИИ-ускорителя на базе LPU-процессора
Плата ИИ-ускорителя на базе LPU-процессора. Источник: Groq.
  • Cerebras WSE-3. Один чип размером с целую 300-мм пластину, внутри которого 44 ГБ SRAM. Пропускная способность памяти достигает колоссальных 21 ПБ/с. Это позволяет достигать скоростей свыше 2500 токенов/с на больших моделях без дополнительных коммутаторов, но платой выступает монструозное энергопотребление (около 27 кВт на одну стойку CS-3).
Cerebras WSE-3
ИИ-процессор Cerebras WSE-3. Источник: Cerebras.
  • d-Matrix Corsair. Гибридный подход с уклоном в compute-in-memory. Каждый ускоритель Corsair несет на борту 2 ГБ выделенной памяти на базе SRAM и развивает пропускную способность до 150 ТБ/с. Но самое интересное — ячейки этой SRAM модифицированы для выполнения операций умножения прямо внутри памяти (all-digital compute-in-memory), без перемещения данных в вычислительную логику. Помимо быстрой памяти, есть и медленная — 256 ГБ LPDDR5 для хранения тех весов, что не влезают в SRAM.
ИИ-ускоритель на базе чипов d-Matrix Corsair
Плата ИИ-ускорителя на базе двух чипов d-Matrix Corsair. Источник: d-Matrix.
  • SambaNova RDU. В чипе SN40L реализована трехступенчатая иерархия: 520 МБ распределенной SRAM на кристалле, 64 ГБ HBM на упаковке и большой пул DDR-памяти вне кристалла. SRAM здесь не хранит всю модель, а используется как самый быстрый буфер для активных блоков. Благодаря реконфигурируемой потоковой архитектуре загрузка моделей между “ступеньками” памяти ускоряется до 100 раз по сравнению с обычными GPU.
RDU-процессор SN40L
RDU-процессор SN40L от компании SambaNova. Источник: SambaNova.

Будущее SRAM-памяти

Несмотря на проблемы с масштабированием на планарных техпроцессах, технология SRAM не стоит на месте. Индустрия активно ищет новые подходы, способные продлить ей жизнь и расширить область применения.
  • Первое и самое многообещающее направление — стэкирование SRAM. Используя технологии TSV, из SRAM кристаллов можно делать многослойные сэндвич-чипы, аналогичные тому, как в чипах HBM стэкируются слои DRAM. Такой подход дает значительный прирост плотности объема памяти SRAM в ИИ-ускорителях, открыв доступ к масштабированию емкости вплоть до терабайтов на один чип. Именно эту технологию сейчас применяет компания AMD для создания мощного кэша в своих передовых десктопных процессорах AMD Ryzen 3D V-Cache.
  • Второе важное направление — вертикальная интеграция. Вместо того, чтобы пытаться уместить крупную SRAM-память на одной подложке с вычислительными чипами, сейчас рассматривается возможность укладывать SRAM прямо на ИИ-чипы по технологии Backside Power Delivery в техпроцессе TSMC A16, чтобы увеличить полезную площадь и еще больше увеличить пропускную способность. Предположительно, именно такой способ компоновки будет использоваться в следующем поколении LPU-чипов Groq 4 в связке с решениями Nvidia Feynman.
  • Третье направление — инновации в самих ячейках. Разрабатываются 3D-ячейки SRAM с разделением NMOS и PMOS транзисторов по отдельным слоям, что позволяет сократить площадь ячейки и уменьшить паразитные емкости. Существуют прототипы с плотностью, близкой к DRAM, но с сохранением скоростных характеристик SRAM.
  • Четвертое направление — compute-in-memory. Встроенная в SRAM логика позволяет выполнять простые операции (например, сложение и умножение) непосредственно в массиве памяти, не тратя энергию и время на перемещение данных в CPU/GPU. Эту концепцию можно интегрировать в инфраструктуры ИИ-инференса, чтобы выполнять операции умножения матриц прямо в ячейках SRAM с огромной скоростью.
Вертикальное стэкирование SRAM-памяти
Концепт технологии вертикального размещения SRAM-памяти в ИИ-ускорителях LPU. Источник: Substack.

Выводы

SRAM остается краеугольным камнем высокопроизводительных вычислений уже почти шесть десятилетий, и, несмотря на проблемы с масштабированием, позиции этой технологии выглядят незыблемыми на обозримое будущее. Ни HBM, ни GDDR, ни любые другие типы DRAM-памяти не могут сравниться с SRAM по задержкам, но за это неизбежно приходится платить небольшой емкостью и высокой стоимостью использования SRAM-кристаллов при масштабировании объема памяти до нескольких сотен гигабайт. Однако для игроков, которые готовы потратиться ради достижения минимальных задержек в передачи данных для ИИ-инференса, эти ограничения не представляют серьезной угрозы, что наглядно продемонстрировала компания Nvidia в своих передовых чипах Groq 3 LPU и стартап Cerebras в “царь-чипах” WSE. Тем не менее, пока что капитальные затраты на внедрение SRAM в ИИ-инфраструктуры оправдывается только в сценариях инференса, но и эта проблема может изжить себя в ближайшем будущем.
Автор: Serverflow Serverflow
Поделиться

Комментарии 0

Написать комментарий
Сейчас тут ничего нет. Ваш комментарий может стать первым.
Написать отзыв
До 6 фото, размером до 12Мб каждое
Мы получили ваш отзыв!

Он появится на сайте после модерации.

Написать комментарий

Комментарий появится на сайте после предварительной модерации

До 6 фото, размером до 12Мб каждое
Мы получили ваш отзыв!

Он появится на сайте после модерации.

Мы свяжемся с вами утром

График работы: Пн-Пт 10:00-18:30 (по МСК)

Обработаем вашу заявку
в ближайший рабочий день

График работы: Пн-Пт 10:00-18:30 (по МСК)