Skip to main content
CUTLASS provides both a C++ header-only library and a Python package. Choose the installation method that best fits your workflow.

System requirements

Minimum requirements

  • GPU: NVIDIA GPU with compute capability 7.0 or higher (Volta architecture or newer)
  • CUDA Toolkit: Version 11.4 or higher
  • Compiler: C++17 compatible compiler
    • GCC 7.5.0 or higher (GCC 8.5.0 has known issues, use 7.5 or 9+)
    • Clang 7.0 or higher
    • MSVC 2019 or higher
  • CMake: Version 3.19 or higher (for building examples and tests)
  • Python: Version 3.8 or higher (for Python interface)
  • CUDA Toolkit: Version 12.8 or higher
  • GPU: Hopper (H100, H200) or Blackwell (B200, B300, RTX 50 series)
  • Compiler: GCC 11.2+ or Clang 14+
  • Python: Version 3.9 or higher
CUTLASS 4.4.1 is optimized for CUDA 12.8+ and performs best on Hopper and Blackwell architectures with access to the latest Tensor Core features.

Supported platforms

Operating systems

Windows builds have known issues in CUTLASS 4.x. The CUTLASS team is working on fixes. Linux is recommended for production use.

GPU architectures

Hopper and Blackwell architectures require the “a” suffix for architecture-accelerated features (e.g., sm_90a, sm_100a) to enable advanced Tensor Core instructions.

C++ installation

CUTLASS is a header-only library - no compilation or installation is required to use it in your projects.
1

Clone the repository

Or download a specific release:
2

Set environment variables

Set CUTLASS_PATH for easy reference:
Set CUDACXX to point to your NVCC compiler:
Add to your .bashrc or .zshrc for persistence:
3

Include in your project

Add CUTLASS headers to your include path:Direct compilation:
CMake project:
CMakeLists.txt
In your source code:
4

Verify installation (optional)

Build and run CUTLASS examples to verify your setup:
Expected output:

CMake integration

For projects using CMake, you can use CUTLASS as an imported target:
Or install CUTLASS system-wide:

Architecture-specific builds

To compile for specific GPU architectures and reduce build time:
Always use the “a” suffix for Hopper (90a) and Blackwell (100a, 103a) when using Tensor Core features. Without the suffix, kernels will fail at runtime.

Python installation

The CUTLASS Python interface is distributed as the nvidia-cutlass package.
1

Install from PyPI

The easiest way to install:
The package name is nvidia-cutlass. Other packages named cutlass are not affiliated with NVIDIA CUTLASS.
2

Install matching cuda-python

Ensure cuda-python version matches your CUDA Toolkit:
Check your CUDA version:
3

Verify installation

Test the installation:

Install from source

For development or to use the latest features:
1

Clone the repository

2

Set optional environment variables

If not set, these will be inferred automatically.
3

Install the package

For regular installation:
For development (changes reflect immediately):
4

Install additional dependencies

The CUTLASS Python interface requires:
These are installed automatically with pip install nvidia-cutlass.

Python requirements

The CUTLASS Python interface has the following dependencies:
Compatibility:
  • Python: 3.8, 3.9, 3.10, 3.11
  • CUDA: 11.8, 12.0, 12.1, 12.8, 13.0+
  • Platforms: Linux (Ubuntu 18.04+), Windows (experimental)

CuTe DSL installation

CuTe DSL is a Python interface for writing CUDA kernels.
1

Navigate to CuTe DSL directory

2

Run the setup script

For CUDA 12.x:
For CUDA 13.1:
3

Verify installation

CuTe DSL requires CUTLASS C++ headers to be available. Set CUTLASS_PATH environment variable or install from the CUTLASS repository.

CuTe DSL features

  • CUDA Toolkit 13.1 support with GB300 (SM103) support
  • Ahead-of-Time (AoT) compilation for faster kernel loading
  • JAX integration for use with JAX workflows
  • Experimental API with fragment-free programming model
  • Automatic TMA descriptor generation for Hopper/Blackwell

Docker installation

The easiest way to get started with a complete environment:
This container includes:
  • CUDA Toolkit
  • cuDNN and cuBLAS libraries
  • Python with PyTorch
  • Development tools (gcc, cmake, etc.)

Environment setup

Add these to your shell configuration for convenience:
~/.bashrc

Build configuration

For CMake builds, create a configuration file:
cutlass_config.cmake
Use with:

Troubleshooting

Ensure CUDA is installed and nvcc is in your PATH:
If not found, install CUDA from NVIDIA’s website.
Verify cuda-python matches your CUDA version:
Reinstall with correct version:
Check your GCC version:
GCC 8.5.0 has known issues. Use GCC 7.5 or 9+:
Install newer CMake:
Ensure you’re using the correct compute capability:
Use matching architecture flag:
  • 8.0 → -gencode arch=compute_80,code=sm_80
  • 9.0 → -gencode arch=compute_90a,code=sm_90a (note the “a”)
  • 10.0 → -gencode arch=compute_100a,code=sm_100a
Windows support is currently limited. For production use:
  • Use WSL2 with Ubuntu
  • Use Docker Desktop with Linux containers
  • Use a Linux system or VM

Next steps

Quick start guide

Build your first GEMM kernel

C++ examples

Explore example kernels

Python examples

Python notebooks and scripts

Performance guide

Profile and optimize kernels

Getting help

If you encounter issues: