NVIDIA/cutlass

CUDA Templates and Python DSLs for High-Performance Linear Algebra

What it solves

CUTLASS provides a set of high-performance linear algebra building blocks for CUDA, specifically targeting matrix-matrix multiplication (GEMM) and related computations. It allows developers to implement highly optimized kernels without having to write low-level hardware-specific code from scratch for every new architecture.

How it works

CUTLASS uses a hierarchical decomposition strategy to break down complex matrix operations into reusable, modular software components. It provides C++ template abstractions and a Python-native DSL (CuTe DSL) to manage data movement and computation across different levels of the GPU memory hierarchy. The library includes a core library called CuTe, which handles the complex indexing and layout of tensors and threads, allowing programmers to focus on the logical algorithm rather than mechanical bookkeeping.

Who it’s for

It is designed for performance engineers, researchers, and students who need to maximize GPU throughput for linear algebra operations across NVIDIA architectures (from Volta to Blackwell).

Highlights

  • Broad Architecture Support: Optimized for NVIDIA Volta, Turing, Ampere, Ada, Hopper, and Blackwell.
  • Extensive Data Type Support: Supports a wide range of precision levels, including FP64, FP32, TF32, FP16, BF16, FP8, FP4, and narrow integer types.
  • Python DSL: The CuTe DSL allows for rapid prototyping of CUDA kernels in Python without performance compromises.
  • Nearly Optimal Performance: Primitives are designed to exhibit nearly optimal utilization of peak theoretical throughput on modern NVIDIA GPUs.

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • Dispatch