cutile-rs  by NVlabs

Safe, tile-based GPU kernel programming in Rust

Created 1 month ago
265 stars

Top 96.4% on SourcePulse

GitHubView on GitHub
Project Summary

<2-3 sentences summarising what the project addresses and solves, the target audience, and the benefit.> cuTile Rust (cutile-rs) is a research project providing a safe, tile-based GPU kernel programming DSL within the Rust ecosystem. It offers a host-side API for asynchronous kernel execution, aiming to simplify GPU development for Rustaceans by leveraging a pure Rust compiler pipeline.

How It Works

The project integrates a user-facing DSL for authoring kernels, a safe host-side API for asynchronous execution, and a Rust compiler pipeline backed by the CUDA Tile compiler. This design prioritizes safety and idiomatic Rust integration, allowing developers to define GPU computations using familiar Rust syntax and patterns, with lazy kernel launchers and Just-In-Time (JIT) compilation.

Quick Start & Requirements

  • Installation: Requires Rust (1.89+), NVIDIA drivers, and CUDA 13.2 (recommended). Set CUDA_TOOLKIT_PATH. A Nix flake is available for streamlined setup.
  • Hardware: NVIDIA GPU with compute capability sm_80 or higher. sm_90 is not yet supported.
  • OS: Linux (tested on Ubuntu 24.04).
  • Examples: Run via cargo run -p cutile-examples --example hello_world.
  • Docs: CUDA downloads: https://developer.nvidia.com/cuda-downloads.

Highlighted Details

  • Safe, tile-based GPU kernel DSL in Rust.
  • Asynchronous host-side API for kernel execution.
  • Pure Rust compiler pipeline.
  • JIT compilation with caching.
  • Nix flake for development environment.

Maintenance & Community

This is an early-stage (alpha) research project under active development, with ongoing improvements and potential API breakage. Contributions are welcomed via CONTRIBUTING.md. No specific community channels or roadmaps are detailed in the README.

Licensing & Compatibility

The cuda-bindings crate is under the NVIDIA Software License. All other crates (e.g., cutile, cutile-compiler) are licensed under the Apache License, Version 2.0. Compatibility for commercial use requires careful review due to the NVIDIA Software License on bindings.

Limitations & Caveats

The project is in an alpha state, meaning users should expect bugs, incomplete features, and API instability. Specific hardware (sm_80+) and software (CUDA 13.2, Rust 1.89+) requirements must be met, and support for newer GPU architectures like sm_90 is pending future CUDA releases.

Health Check
Last Commit

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
53
Issues (30d)
14
Star History
64 stars in the last 30 days

Explore Similar Projects

Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), and
4 more.

gpu.cpp by AnswerDotAI

0.1%
4k
C++ library for portable GPU computation using WebGPU
Created 1 year ago
Updated 6 months ago
Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), Pankaj Gupta Pankaj Gupta(Cofounder of Baseten), and
1 more.

cccl by NVIDIA

0.6%
2k
CUDA C++ building blocks for high-performance GPU computing
Created 5 years ago
Updated 5 hours ago
Feedback? Help us improve.