Libro y colección de código de código abierto con apuntes actuales para aprender CUDA y más de 200 kernels de HGEMM, GEMM con FP8/FP4 y Flash-Attention.
NVIDIA/cutlass
Biblioteca de plantillas de CUDA C++ y DSL de Python para escribir kernels GEMM y de álgebra lineal de alto rendimiento en GPU NVIDIA.
- Estrellas
- 10,623
- Forks
- 2,133
- Issues abiertos
- 785
- Último commit
- hace 5 horas
¿Qué es?
CUTLASS es una colección de abstracciones para implementar multiplicación de matrices (GEMM) de alto rendimiento y cálculos relacionados en CUDA. Divide el trabajo en componentes jerárquicos y reutilizables que abarcan los niveles de hilo, warp y threadblock, con tamaños de tile, tipos de datos y políticas algorítmicas ajustables que pueden servir como bloques de construcción para kernels personalizados.
La biblioteca de C++ admite una amplia variedad de tipos numéricos, incluidos FP64, FP32, TF32, FP16, BF16, FP8, formatos FP4 y FP6 con escalado por bloques e enteros de pocos bits, en arquitecturas NVIDIA desde Volta hasta Blackwell y Rubin. CuTe, su biblioteca principal de layouts y tensores, se utiliza en toda la jerarquía de GEMM.
CUTLASS 4 incorpora CuTe DSL, una interfaz nativa de Python para escribir kernels CUDA basada en los conceptos de CUTLASS y CuTe, que actualmente está en beta pública. El proyecto también incluye ejemplos, pruebas unitarias y un profiler de línea de comandos para ejecutar y comparar kernels de GEMM y convolución.
Funciones clave
- 01Plantillas jerárquicas y reutilizables de C++ para kernels de GEMM y convolución
- 02Abstracciones de layouts y tensores de CuTe para describir hilos y datos
- 03Compatibilidad con tipos desde FP64 hasta FP8, FP4/FP6 con escalado por bloques y tipos enteros de pocos bits
- 04CuTe DSL para escribir kernels CUDA en Python
- 05Profiler de línea de comandos para comparar el rendimiento de kernels de GEMM y convolución con cuBLAS
Casos de uso
- Crear kernels personalizados de alto rendimiento para GEMM o kernels fusionados destinados a cargas de trabajo de deep learning en GPU NVIDIA
- Aprender cómo se estructuran y ajustan los kernels GEMM que usan tensor cores
- Prototipar diseños de kernels en Python con CuTe DSL antes de implementarlos en producción
- Perfilar y elegir configuraciones de kernels de GEMM o convolución para un tamaño de problema determinado
Inicio rápido
- 1
Leer la guía de inicio rápido de CUTLASS C++
- 2
Leer la guía de inicio rápido de CuTe DSL para la interfaz de Python
Antes de usarlo
- CuTe DSL está en beta pública y aún no ha alcanzado la versión estable.
- Hay errores conocidos de generación de código que afectan a algunas instrucciones empaquetadas en las GPU Rubin (sm107).
- Se necesitan GPU NVIDIA y el conjunto de herramientas CUDA.
- La licencia no se detecta claramente en los metadatos, así que consulta sus términos antes de usarlo.
Temas
Preguntas frecuentes
- ¿Qué es cutlass?
- Biblioteca de plantillas de CUDA C++ y DSL de Python para escribir kernels GEMM y de álgebra lineal de alto rendimiento en GPU NVIDIA. CUTLASS es una colección de abstracciones para implementar multiplicación de matrices (GEMM) de alto rendimiento y cálculos relacionados en CUDA. Divide el trabajo en componentes jerárquicos y reutilizables que abarcan los niveles de hilo, warp y threadblock, con tamaños de tile, tipos de datos y políticas algorítmicas ajustables que pueden servir como bloques de construcción para kernels personalizados.
- ¿cutlass es gratuito? ¿Qué licencia tiene?
- cutlass es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿cutlass sigue mantenido?
- Mantenimiento activo. El último commit de cutlass fue el 20 oct 2026.
- ¿Para qué puedo usar cutlass?
- Crear kernels personalizados de alto rendimiento para GEMM o kernels fusionados destinados a cargas de trabajo de deep learning en GPU NVIDIA Aprender cómo se estructuran y ajustan los kernels GEMM que usan tensor cores Prototipar diseños de kernels en Python con CuTe DSL antes de implementarlos en producción Perfilar y elegir configuraciones de kernels de GEMM o convolución para un tamaño de problema determinado
- ¿Cómo se instala cutlass?
- Leer la guía de inicio rápido de CUTLASS C++ Leer la guía de inicio rápido de CuTe DSL para la interfaz de Python
- ¿Dónde consigo cutlass?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/NVIDIA/cutlass
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Plataforma open source integral para crear e implementar modelos de machine learning, con API para Python y C++.
Implementación oficial de FlashAttention, un kernel de atención exacta y eficiente en memoria para entrenar e inferir con modelos Transformer en GPU.
Biblioteca y servidor rápidos y eficientes en memoria para ejecutar y servir modelos de lenguaje grandes mediante una API compatible con OpenAI.
Una biblioteca de optimización de deep learning que facilita y hace más eficiente el entrenamiento distribuido y la inferencia de modelos grandes.
SGLang es un framework de inferencia de código abierto para servir modelos de lenguaje, visión y difusión en diversas plataformas GPU, TPU y CPU.