Исследователь Хамза Эль-Шафи опубликовал детальный разбор внутреннего устройства ThunderKittens — компактного DSL (domain-specific language) для написания высокопроизводительных GPU-ядер для задач искусственного интеллекта, который разрабатывает лаборатория Hazy Research в Стэнфорде. Главный вывод: ThunderKittens позволяет писать ядра уровня FlashAttention в десятки раз короче, чем на чистом CUDA, при сопоставимой или даже более высокой производительности на NVIDIA H100. В этой статье мы разбираем, что именно открыли разработчики, почему это важно для всей AI-индустрии и какие практические последствия это будет иметь для пользователей ИИ-инструментов в России и СНГ.
Что такое ThunderKittens и почему о нём заговорили?
ThunderKittens (TK) — это встроенный в C++/CUDA DSL, который абстрагирует работу с GPU вокруг небольших тайлов (как правило, блоков 16×16). Лаборатория Hazy Research под руководством Криса Ре уже несколько лет известна работами над FlashAttention, Mamba и другими архитектурами, которые меняли практику обучения больших моделей. Однако каждое такое ядро традиционно писалось вручную на низкоуровневом CUDA и занимало тысячи строк кода, разбираться в которых могла лишь горстка инженеров.
ThunderKittens пытается решить именно эту проблему: дать исследователям язык, на котором сложные операции — внимание, sparse-блоки, MoE-роутинг — пишутся компактно и при этом транслируются в код, сравнимый по эффективности с ручным CUDA.
«Современные GPU настолько сложны, что наивный код использует лишь 10–20% их пиковой производительности. ThunderKittens пытается сделать так, чтобы исследователь, а не только инженер по производительности, мог дотянуться до железа», — пишет Эль-Шафи в подробном разборе внутреннего устройства ThunderKittens.
Релиз вызвал волну обсуждений на Lobsters, Hacker News и в Twitter-сообществе ML-инженеров. Многие сравнивают подход с Triton от OpenAI, но отмечают, что ThunderKittens идёт дальше в специализации под H100 и Hopper-архитектуру.
Почему это важно для пользователей AI в России и СНГ?
Для российских и СНГ-разработчиков и обычных пользователей AI-инструментов история ThunderKittens имеет несколько практических измерений. Во-первых, более быстрые ядра напрямую означают более быстрые модели и более низкую стоимость их инференса. По данным официального репозитория Hazy Research на GitHub, отдельные операции, переписанные на TK, дают ускорение от 1.4× до 2× по сравнению с baseline-реализациями в PyTorch — а это в перспективе влияет на цену токена для всех конечных продуктов.
Во-вторых, в условиях ограниченного доступа к топовому железу для российских команд (санкционные ограничения на H100/H200) важнее становится сама архитектура мышления: писать эффективнее в расчёте на каждый имеющийся GPU. TK даёт шаблон того, как это делать.
- Удешевление инференса топовых моделей у мировых провайдеров — это значит дешевле и для пользователей, заходящих через агрегаторы.
- В WebGPT уже доступны новейшие модели от OpenAI, Anthropic, Google и DeepSeek — оптимизации на уровне ядер постепенно отражаются в скорости ответа.
- Открытый код TK даёт российским ML-командам шанс адаптировать подход под B200, RTX 5090 или даже под доступные A100, если у них есть нужная экспертиза.
Наконец, ThunderKittens — это редкий пример, когда исследовательская инфраструктура публикуется полностью открыто, в отличие от закрытых ядер крупных корпораций. Это снижает барьер входа для русскоязычных университетов и стартапов.
Как ThunderKittens работает изнутри?
Ключевая идея TK — построить весь язык вокруг понятия tile, фрагмента матрицы фиксированного размера, который хорошо ложится на тензорные ядра Hopper. Эль-Шафи в своём разборе пошагово показывает, как этот примитив раскрывается в реальный машинный код.
Тайлы вместо потоков
В классическом CUDA программист мыслит в категориях warp'ов и потоков, постоянно сталкиваясь с проблемами координации и доступа к памяти. ThunderKittens предлагает другой уровень абстракции: единицей работы становится не поток, а тайл — например, блок 16×16 fp16-значений в shared memory или регистрах. Все операции — загрузка, перемножение, softmax, нормализация — описываются как действия над целыми тайлами.
Шаблоны C++ как DSL
Технически TK реализован как набор C++-шаблонов, которые во время компиляции разворачиваются в оптимальные последовательности PTX-инструкций. Это даёт два преимущества сразу:
- Никакого отдельного компилятора и рантайма — проект собирается обычным nvcc.
- Полная интеграция с экосистемой PyTorch через стандартные расширения CUDA.
Использование TMA и WGMMA
На Hopper-архитектуре (H100) появились две новые крупные возможности: TMA (Tensor Memory Accelerator) для асинхронной загрузки данных и WGMMA — групповые инструкции умножения матриц на уровне warpgroup. ThunderKittens прячет их за высокоуровневыми вызовами, чтобы исследователь не разбирался в нюансах асинхронных барьеров и cluster-режима.
По наблюдению автора разбора, около 70% усилий при ручном написании ядра под H100 уходит именно на корректную работу с TMA и синхронизацию warp'ов. TK устраняет почти весь этот класс ошибок.
Кто уже использует ThunderKittens и какие задачи решает?
За короткое время вокруг библиотеки сложилось небольшое, но очень активное сообщество. Среди явных пользователей и контрибьюторов — авторы оригинального FlashAttention Три Дао и его коллеги, исследователи в области state-space models, а также несколько независимых команд, занимающихся ускорением инференса open-source LLM.
- Внимание и его варианты — реализации FlashAttention-2/3, sliding window attention, ring attention с TK получаются в 5–10 раз короче, чем оригинальные.
- State-space модели — ядра Mamba и Mamba-2 переписываются с использованием TK для лучшей переносимости на новые GPU.
- Mixture of Experts — токен-роутинг и групповые перемножения в MoE-слоях упрощаются за счёт примитивов TK.
- Прототипирование архитектур — исследователи быстрее проверяют гипотезы, потому что не тонут в CUDA-инфраструктуре.
Эта прагматичная направленность отличает проект от чисто академических DSL: ThunderKittens с первого дня делался под реальные задачи, с которыми лаборатория сталкивается в своих публикациях.
Чем ThunderKittens отличается от Triton, CUTLASS и других подходов?
Сравнения с альтернативами неизбежны, потому что задача эффективного написания GPU-ядер для ИИ — одна из самых горячих в индустрии. Кратко разберём ключевые отличия.
Triton (OpenAI)
Triton тоже работает в парадигме тайлов и пытается сделать GPU-программирование доступнее. Но это отдельный Python-фронтенд со своим компилятором (MLIR), который должен поддерживать все архитектуры. ThunderKittens намеренно жертвует широтой ради глубины: на H100 он эксплуатирует особенности Hopper более агрессивно, потому что не должен абстрагировать одно и то же поведение для десятка чипов.
CUTLASS (NVIDIA)
CUTLASS — официальная библиотека шаблонов от NVIDIA, исключительно мощная, но и крайне сложная. По свидетельству исследователей из лаборатории Hazy Research, порог входа в CUTLASS остаётся одной из главных причин, почему многие команды не пытаются писать собственные ядра. TK перенимает часть идей, но даёт значительно более компактный API.
cuDNN и cuBLAS
Это закрытые бинарные библиотеки от NVIDIA. Они дают околомаксимальную производительность, но только для заранее предопределённого набора операций. Как только нужен нестандартный паттерн внимания или необычный слой — приходится писать самому. Именно эту нишу занимает ThunderKittens.
Какие практические последствия это будет иметь?
Если экстраполировать тренд, ThunderKittens и подобные ему проекты ведут к нескольким большим сдвигам в экосистеме ИИ. Эти изменения растянутся на месяцы и годы, но уже сейчас стоит учитывать их при планировании работы.
- Демократизация custom-ядер. То, что раньше требовало команды из 3–5 senior CUDA-инженеров, всё чаще будет под силу одному исследователю.
- Рост темпов архитектурных экспериментов. Если новый attention-вариант можно проверить за пару дней, а не за месяц, темпы итераций ускорятся.
- Удешевление инференса. Чем больше ядер написано эффективно, тем дешевле выходит запуск моделей у провайдеров. Это в перспективе снижает цены и для пользователей в России — например, тех, кто пользуется агрегаторами вроде WebGPT.
- Сближение академии и продакшна. Раньше академические работы было трудно переводить в продакшн именно из-за разрыва в инженерной зрелости. ThunderKittens сокращает этот разрыв.
Что это значит для российских AI-команд
Команды в России и СНГ работают в условиях ограниченного доступа к H100 и H200, но при этом активно используют A100 и серверный потребительский класс (RTX 4090, RTX 5090). ThunderKittens пока ориентирован на Hopper, однако сам подход — переход к тайл-ориентированному мышлению — переносим. Это даёт российским ML-инженерам шанс развивать собственный навык написания эффективных ядер, который пригодится на любой архитектуре.
Кроме того, через платформу WebGPT можно тестировать топовые модели от OpenAI, Anthropic, Google и DeepSeek с российских карт и без VPN — и наблюдать, как оптимизации на уровне ядер постепенно отражаются в скорости ответа и цене токена.
Что делать прямо сейчас?
Реакция на ThunderKittens должна быть разной в зависимости от роли. Ниже — короткий чек-лист по аудиториям.
Для ML-инженеров и исследователей
- Изучить репозиторий ThunderKittens и примеры реализации внимания — это лучшее введение.
- Прочитать технический разбор Хамзы Эль-Шафи для понимания внутренней анатомии.
- Попробовать переписать одно собственное ядро на TK — даже учебное.
Для CTO и техлидов
- Оценить, какие узкие места по производительности в вашем стеке могли бы выиграть от custom-ядер.
- Понять, есть ли в команде люди, готовые осваивать тайл-ориентированные DSL.
- Заложить в roadmap пилот по адаптации одного критичного слоя.
Для конечных пользователей AI-инструментов
- Ждать постепенного снижения цен и роста скорости у крупных провайдеров.
- Тестировать новые модели по мере появления — например, через платформы-агрегаторы с доступом из России.
- Следить за обновлениями open-source стека — он движется вперёд быстрее закрытого.
Как читать новость в контексте трендов 2026 года?
ThunderKittens — не изолированное событие. Он встраивается в большой тренд последних двух лет: индустрия осознала, что архитектурные инновации (новые виды внимания, MoE, state-space модели) упираются не в идеи, а в способность быстро реализовать их на железе. Параллельно развиваются Triton, JAX/Pallas, Mojo и другие проекты, каждый со своим балансом гибкости и производительности.
Появление полноценного, проработанного DSL из академической среды — это сигнал, что фронтир смещается. Если раньше «секрет» был в собранной из ничего реализации FlashAttention, то теперь — в инфраструктуре, которая позволяет такие реализации производить серийно.
Для русскоязычного сообщества это означает важное: следить нужно не только за релизами моделей, но и за инструментами их разработки. Именно там сейчас концентрируется самая высокая плотность инноваций. Доступ к GPU в России и СНГ — отдельная больная тема, но архитектурную грамотность можно прокачивать и на доступном железе.
Часто задаваемые вопросы
Что такое ThunderKittens простыми словами?
Это компактный язык на базе C++/CUDA для написания быстрых GPU-программ для задач искусственного интеллекта. Он разработан лабораторией Hazy Research в Стэнфорде. Его главное преимущество — позволяет исследователям писать высокопроизводительные ядра внимания и других слоёв в десятки раз короче, чем на чистом CUDA, не теряя в скорости.
На каком железе работает ThunderKittens?
Основная цель — серверные GPU NVIDIA на архитектуре Hopper (H100, H200), где TK активно использует TMA и WGMMA. Есть поддержка и более старых архитектур (A100, RTX 4090), но именно на Hopper проявляются основные преимущества. На AMD и Intel GPU библиотека пока не работает.
Чем ThunderKittens лучше Triton?
Главное отличие — глубина против широты. Triton поддерживает много архитектур и работает через собственный компилятор. ThunderKittens намеренно фокусируется на Hopper и реализован как обычные C++-шаблоны, что позволяет ему выжимать максимум из конкретного железа. Если нужна максимальная скорость на H100 — TK сильнее. Если важна переносимость — Triton удобнее.
Можно ли использовать ThunderKittens в России?
Сам код открытый и доступен на GitHub без ограничений. Сложность в другом: H100 и H200 в России доступны лишь точечно из-за санкционных ограничений. Однако подход и идеи ThunderKittens применимы при работе с A100 и потребительскими картами уровня RTX 4090/5090. Российские ML-команды могут изучать архитектуру и адаптировать её под доступное железо.
Повлияет ли это на скорость работы ChatGPT и других сервисов?
Прямо и сразу — нет, потому что крупные провайдеры используют собственные оптимизированные ядра. Но индустрия в целом движется к более быстрому и дешёвому инференсу, и проекты вроде ThunderKittens ускоряют эту динамику. В перспективе нескольких кварталов это отразится и на ценах в API, и на скорости ответа в потребительских интерфейсах, включая агрегаторы вроде WebGPT.
Где почитать первоисточник?
Полный технический разбор устройства ThunderKittens опубликован в блоге Хамзы Эль-Шафи: Dissecting ThunderKittens. Исходный код, документация и примеры доступны в репозитории Hazy Research на GitHub. Свежие обсуждения можно отслеживать на Lobsters в теге ai.