AI & Machine Learning

Бэкенд CuteDSL для TorchInductor: лучшие в своем классе GEMM

В середине процесса компиляции автотюнер TorchInductor запускает CuteDSL — Python DSL от NVIDIA, который тихо переписывает правила для GEMM-ядер. Быстрее CUTLASS, столь же мощный — это бэкенд, которого ждали разработчики PyTorch.

{# Always render the hero — falls back to the theme OG image when article.image_url is empty (e.g. after the audit's repair_hero_images cleared a blocked Unsplash hot-link). Without this fallback, evergreens with cleared image_url render no hero at all → the JSON-LD ImageObject loses its visual counterpart and LCP attrs go missing. #}
TorchInductor получил CuteDSL: SOTA GEMM на GPU NVIDIA — Open Source Beat

Key Takeaways

  • CuteDSL присоединяется к бэкендам TorchInductor, обеспечивая производительность GEMM уровня CUTLASS с компиляцией со скоростью Python.
  • Ориентирован только на GEMM — где находятся трансформеры, — оставляя Triton для операций, привязанных к памяти.
  • Приверженность NVIDIA минимизирует поддержку PyTorch; позиционируется как преемник CUTLASS.

Автотюнер TorchInductor делает паузу. Он взвешивает Triton против cuBLAS, CUTLASS против новичка: CuteDSL. И выбирает кандидата на базе Python для GEMM, которые пожирают циклы трансформеров.

Это не хайп. Это просчитанный маневр в бэкенд-войнах PyTorch, где матричные умножения — эти ненасытные звери в LLM — требуют идеального управления аппаратным обеспечением.

Почему CuteDSL так легко встраивается в TorchInductor?

Три пункта: низкие затраты на обслуживание, никаких регрессий при компиляции, превосходная скорость на ключевых рабочих нагрузках. CuteDSL выполняет их все. NVIDIA вкладывает в него ресурсы, передавая готовые шаблоны ядер, которые не перегружают разработчиков PyTorch. Время компиляции? На уровне Triton, что является благом по сравнению с затяжной работой nvcc для CUTLASS.

«CuteDSL построен на тех же абстракциях, что и CUTLASS C++, продемонстрировавший высокую производительность на FP8 GEMM и слиянии эпилогов, но он написан на Python, имеет более быстрое время компиляции и менее сложен в обслуживании».

Это прямая цитата команды PyTorch. Никакой воды. И вот главная новость: это не просто замена бэкенда. PyTorch делает ставку на Python, чтобы приручить тензорные ядра NVIDIA, от распределенной общей памяти H100 до кластерных трюков B200.

CuteDSL раскрывает полный стек — варпы, блоки потоков, иерархии памяти — без багажа C++. Автотюнинг взрывается кандидатами, тестирование слияния становится возможным. Конвейер PyTorch, уже являющийся монстром для Triton, теперь масштабируется до точности GEMM.

Но подождите. Только GEMM. Почему?

GEMM доминируют — так почему им уделяется столько внимания?

Трансформеры не шепчут. Их прямые проходы кричат GEMM: проекции внимания, FFN, выходные головы. Большинство циклов GPU, каждый раз. Пиковая утилизация? Это означает точную настройку размеров плитки под конвейеры тензоров, правильное размещение общей памяти, виртуозное планирование варпов.

Более высокие языки скрывают это. CuteDSL — как и CUTLASS — нет. Начинается с вручную оптимизированных шаблонов, настраиваются параметры для форм. Никакой генерации с нуля; это для мазохистов.

Остальное — территория Triton. Поэлементные операции, активации, редукции — привязанные к памяти, векторное наслаждение. Оба DSL достигают пределов пропускной способности на softmax, скажем, на масштабах GB200. Там нет смысла в низкоуровневой работе CuteDSL.

Как CuteDSL превосходит CUTLASS без особых усилий?

CUTLASS C++ обеспечивает результат. FP8 GEMM, тесно слиянные эпилоги. Но каждый вариант? Полная компиляция nvcc. Автотюнинг задыхается от объема; тесты слияния? Забудьте.

CuteDSL меняет правила игры. Python в компилятор MLIR, молниеносно. Та же алгебра плиток, примитивы памяти, модель слияния, что и у CUTLASS. Тем не менее, TorchInductor обращается с ним как с Triton: полная ярость автотюнинга.

Марш аппаратного обеспечения NVIDIA — кластеры Hopper, распределенные SM Blackwell — идеально соответствуют примитивам CuteDSL. Импульс open source растет: Quack от Tri Dao, Jay Shah из Colfax. Звезды сошлись.

И уникальный угол? Это отражает эволюцию самого CUDA. Помните PTX? Достаточно высокоуровневый для инструментов, достаточно низкий для твиков ISA. CuteDSL — это PTX для GEMM — момент PTX для PyTorch, позволяющий DSL поглощать сложность компилятора, в то время как NVIDIA настраивает металл. Смелое предсказание: к концу эпохи Hopper CUTLASS C++ угаснет; CuteDSL займет эту нишу, кодовая база станет компактнее, PyTorch ускорится.

Скептичны? Понятно. Корпоративный пиар кричит «стратегические инвестиции». Но метрики не лгут. Параллелизм компиляции доказан, производительность на уровне SOTA. Обслуживание передано NVIDIA. В крайнем случае, PyTorch играет безопасно — пока CuteDSL не обгонит всех.

Глубже: эта перетасовка бэкендов сигнализирует об амбициях PyTorch в области GEMM. Не довольствуясь обертками cuBLAS, теперь он переходит на уровень DSL. Для разработчиков, настраивающих LLM на стеках NVIDIA, ожидайте слитых ядер, которые лучше используют пики, и сокращенных времен выполнения.

Что насчет не-GEMM? Triton остается. Эксперименты подтверждают: ядра softmax из обоих DSL насыщают пропускную способность GB200 при увеличении размеров. Никаких регрессий, никакой погони за сложностью.

Является ли CuteDSL будущим автотюнинга GEMM в PyTorch?

Да, если аппаратное обеспечение будет продолжать развиваться. Кластеры блоков потоков B200? Примитивы CuteDSL синхронизируют их нативно. Будущие поколения? Те же абстракции будут масштабироваться. CUTLASS C++ скрипит под nvcc; Python течет.

Критерии PyTorch не были произвольными. Приверженность поставщика (отмечено), нейтральность по времени (отмечено), победы в рабочих нагрузках (отмечено). Результат: SOTA GEMM, генерируемые на лету.

Критикуете пиар-глянец? Он есть — «долгосрочные стратегические инвестиции» пахнут советом директоров. Но за этим стоит суть: более быстрая компиляция раскрывает обещание автотюнинга, решения о слиянии принимаются в реальном времени. Трансформеры выигрывают.

Историческая параллель: взлет GCC уничтожил проприетарные C-компиляторы, съев их обед по скорости и переносимости. CuteDSL мог бы сделать это для GEMM-бэкендов — доступность Python демократизирует низкоуровневое преимущество NVIDIA.

Почему CuteDSL важен для обучения LLM?

Сэкономленные циклы на GEMM каскадируют. Прямые проходы ускоряются, обратные — тоже. Файнтюнинг сокращается с часов до… меньше. На кластерах GB200 это означает пропускную способность, эквивалентную целым кластерам.

Разработчики получают шаблоны, настраивают формы, а TorchInductor выбирает победителей. Больше никаких хаков C++ ядер.


🧬 Связанные материалы

Часто задаваемые вопросы

Что такое бэкенд TorchInductor CuteDSL?

Это Python DSL от NVIDIA, интегрированный в TorchInductor PyTorch для генерации высокопроизводительных GEMM-ядер, сочетающий контроль CUTLASS со скоростью компиляции Triton.

Заменяет ли CuteDSL CUTLASS в PyTorch?

Позиционируется как возможная замена на новом оборудовании NVIDIA благодаря более быстрой компиляции на Python и общим абстракциям, что упрощает долгосрочное обслуживание.

Может ли CuteDSL улучшить скорость инференса моих LLM?

Потенциально да, позволяя использовать лучше оптимизированные GEMM в слоях трансформеров, особенно с слиянием эпилогов на GPU H100/B200.

Written by
Open Source Beat Editorial Team

Curated insights, explainers, and analysis from the editorial team.

Worth sharing?

Get the best Open Source stories of the week in your inbox — no noise, no spam.

Originally reported by PyTorch Blog