NVIDIA/cuda-tile

CUDA Tile IR is an MLIR-based intermediate representation and compiler infrastructure for CUDA kernel optimization, focusing on tile-based computation patterns and optimizations targeting NVIDIA tensor core units.

What it solves

CUDA Tile IR simplifies the development of high-performance CUDA kernels by providing a specialized intermediate representation (IR) and compiler infrastructure. It specifically targets the optimization of tile-based computation patterns and the utilization of NVIDIA tensor core units, reducing the complexity of managing memory hierarchies and GPU-specific optimizations manually.

How it works

Built on the MLIR (Multi-Level Intermediate Representation) framework, the project provides a domain-specific dialect for expressing tiled computations. It includes Python bindings for programmatic IR construction and a bytecode format for efficient serialization. Programs can be compiled from MLIR to bytecode and then either JIT-compiled via the CUDA driver API or compiled ahead-of-time (AoT) into cubin files using the tileiras tool.

Who it’s for

It is designed for developers creating high-performance GPU kernels who want to use higher-level abstractions for tiling and tensor core optimizations rather than writing raw CUDA code.

Highlights

  • MLIR-based Dialect: Provides first-class operations and types specifically for tile-based computations.
  • Python API: Enables programmatic manipulation and transformation of the IR.
  • Flexible Compilation: Supports both Just-In-Time (JIT) and Ahead-of-Time (AoT) compilation paths.
  • Tensor Core Optimization: Specifically engineered to target NVIDIA tensor core units for maximum performance.

Related

  • Project
  • Project
  • Project
  • Project
  • Project