Repolode
NVIDIA

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. 1

    Прочитайте краткое руководство по CUTLASS C++

  2. 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 обновляется ежедневно.

Похожие проекты