Ecosystem

The GPU ecosystem in Rust is nascent and complex. It can be challenging to understand why projects exist and how they compare to others in the space. This section is a decoder ring for key projects that relate to both Rust and GPUs in some way.

rust-gpu

Compiles unmodified Rust code to SPIR-V (Vulkan) so that it can run on the GPU.

rust-cuda

Compiles unmodified Rust code to NVVM (CUDA) so that it can run on the GPU. Currently unmaintained but stay tuned!

nvptx backend in rustc

Compiles unmodified Rust code to PTX (CUDA) so that it can run on the GPU.

CubeCL

Compute language extension for Rust. Enables annotated Rust code to run on the GPU.

krnl

Safe, portable, high performance compute (GPGPU) kernels. Enables annotated Rust code to run on the GPU (via Rust GPU).

cudarc

Minimal and safe api over the CUDA toolkit. Enables calling CUDA from Rust running on the CPU.

wgpu

A safe and portable graphics library for Rust based on the WebGPU API. Enables communicating with the GPU from Rust running on the CPU.

naga

A source code translator written in Rust that converts between various GPU-specific shader languages (WGSL, GLSL, HLSL, and MSL). These shaders ultimately run on the GPU.

ZLUDA

A drop-in replacement for CUDA written in Rust. Enables using tools and libraries targeted at CUDA on non-NVIDIA hardware.

Asahi Linux GPU drivers

GPU drivers partially written in Rust to add Linux support for Apple GPUs.