Открытая книга и коллекция кода с конспектами по современному CUDA и более чем 200 ядрами для HGEMM, GEMM с FP8/FP4 и Flash-Attention.
NVIDIA/cutlass
Библиотека шаблонов CUDA C++ и DSL для Python для написания высокопроизводительных GEMM-ядер и других ядер линейной алгебры на GPU NVIDIA.
- Звёзды
- 10,623
- Форки
- 2,133
- Открытые issues
- 785
- Последний коммит
- 5 часов назад
Что это?
CUTLASS — набор абстракций для реализации высокопроизводительного умножения матриц (GEMM) и связанных вычислений в CUDA. Работа разделена на иерархические повторно используемые компоненты для потоков, warp и thread block. Настраиваемые размеры тайлов, типы данных и алгоритмические политики позволяют использовать их как строительные блоки для собственных ядер.
Библиотека C++ поддерживает широкий набор числовых типов, включая FP64, FP32, TF32, FP16, BF16, FP8, форматы FP4 и FP6 с блочным масштабированием, а также целочисленные типы с малой разрядностью. Поддерживаются архитектуры NVIDIA от Volta до Blackwell и Rubin. CuTe — основная библиотека раскладки данных и тензоров — используется на всех уровнях иерархии GEMM.
В CUTLASS 4 добавлен CuTe DSL — нативный для Python интерфейс для написания ядер CUDA на основе концепций CUTLASS и CuTe; сейчас он находится в публичной бета-версии. В проект также входят примеры, модульные тесты и профилировщик командной строки для запуска и сравнения ядер GEMM и свёртки.
Ключевые возможности
- 01Иерархические повторно используемые шаблоны C++ для ядер GEMM и свёртки
- 02Абстракции раскладки и тензоров CuTe для описания потоков и данных
- 03Поддержка типов от FP64 до FP8, форматов FP4/FP6 с блочным масштабированием и целочисленных типов с малой разрядностью
- 04CuTe DSL для написания ядер CUDA на Python
- 05Профилировщик командной строки для сравнения производительности ядер GEMM и свёртки с cuBLAS
Сценарии использования
- Создание собственных высокопроизводительных ядер GEMM и fused-ядер для задач deep learning на GPU NVIDIA
- Изучение структуры и настройки GEMM-ядер для tensor core
- Прототипирование ядер на Python с помощью CuTe DSL перед развёртыванием в production
- Профилирование и выбор конфигураций ядер GEMM или свёртки для заданного размера задачи
Быстрый старт
- 1
Прочитайте краткое руководство по CUTLASS C++
- 2
Прочитайте краткое руководство по CuTe DSL для интерфейса Python
Что важно знать
- CuTe DSL находится в публичной бета-версии и ещё не перешёл в стабильный релиз.
- Известные ошибки генерации кода затрагивают некоторые упакованные инструкции на GPU Rubin (sm107).
- Требуются GPU NVIDIA и инструментарий CUDA.
- Лицензия не определяется однозначно по метаданным, поэтому перед использованием проверьте её условия.
Темы
Частые вопросы
- Что такое cutlass?
- Библиотека шаблонов CUDA C++ и DSL для Python для написания высокопроизводительных GEMM-ядер и других ядер линейной алгебры на GPU NVIDIA. CUTLASS — набор абстракций для реализации высокопроизводительного умножения матриц (GEMM) и связанных вычислений в CUDA. Работа разделена на иерархические повторно используемые компоненты для потоков, warp и thread block. Настраиваемые размеры тайлов, типы данных и алгоритмические политики позволяют использовать их как строительные блоки для собственных ядер.
- cutlass можно использовать бесплатно? Какая у него лицензия?
- cutlass распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- cutlass всё ещё поддерживается?
- Активно поддерживается. Последний коммит в cutlass — 20 окт. 2026 г..
- Для чего можно использовать cutlass?
- Создание собственных высокопроизводительных ядер GEMM и fused-ядер для задач deep learning на GPU NVIDIA Изучение структуры и настройки GEMM-ядер для tensor core Прототипирование ядер на Python с помощью CuTe DSL перед развёртыванием в production Профилирование и выбор конфигураций ядер GEMM или свёртки для заданного размера задачи
- Как установить cutlass?
- Прочитайте краткое руководство по CUTLASS C++ Прочитайте краткое руководство по CuTe DSL для интерфейса Python
- Где скачать cutlass?
- Исходный код и инструкции по установке — на GitHub: https://github.com/NVIDIA/cutlass
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Open source-платформа для полного цикла разработки и развёртывания моделей машинного обучения с API для Python и C++.
Официальная реализация FlashAttention — точного и экономного по памяти attention-ядра для обучения и инференса Transformer-моделей на GPU.
Быстрая и эффективная по памяти библиотека и сервер для запуска и обслуживания больших языковых моделей через API, совместимый с OpenAI.
Библиотека для оптимизации глубокого обучения, упрощающая и ускоряющая распределённое обучение и инференс больших моделей.
SGLang — открытый фреймворк для инференса больших языковых и мультимодальных моделей, а также diffusion-моделей на GPU, TPU и CPU разных платформ.