Skip to content

Commit 80d552f

Browse files
authored
Rust CUDA reboot announcement (#63)
1 parent ffdb416 commit 80d552f

File tree

3 files changed

+105
-1
lines changed

3 files changed

+105
-1
lines changed

blog/2025-01-27-rust-cuda-reboot.md

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
title: "Rebooting the Rust CUDA project"
3+
authors: [LegNeato]
4+
tags: ["announcement", "cuda"]
5+
---
6+
7+
We're excited to announce the reboot of the [Rust CUDA project](https://github.com/rust-gpu/rust-cuda). Rust CUDA enables you to write and run [CUDA](https://developer.nvidia.com/cuda-toolkit) kernels in Rust, executing directly on NVIDIA GPUs using [NVVM IR](https://docs.nvidia.com/cuda/nvvm-ir-spec/index.html).
8+
9+
Our immediate focus is on modernizing the project and integrating with other GPU-related efforts in the Rust ecosystem.
10+
11+
**To follow along or get involved, check out the [`rust-cuda` repo on GitHub](https://github.com/rust-gpu/rust-cuda).**
12+
13+
<!-- truncate -->
14+
15+
## Call for contributors
16+
17+
We need your help to shape the future of CUDA programming in Rust. Whether you're a
18+
maintainer, contributor, or user, there's an opportunity to [get
19+
involved](https://github.com/rust-gpu/rust-cuda). We're especially
20+
interested in adding maintainers to make the project sustainable.
21+
22+
Be aware that the process may be a bit bumpy as we work to get the project in order.
23+
24+
## Relation to other GPU projects in the Rust ecosystem
25+
26+
We see significant opportunities for collaboration and unification with related
27+
projects.
28+
29+
- **[Rust GPU](https://rust-gpu.github.io/)**: This project is similar to Rust CUDA but
30+
targets [SPIR-V](https://www.khronos.org/spir/) for [Vulkan](https://www.vulkan.org/)
31+
GPUs.
32+
33+
Our long-term vision for the two projects includes merging developer-facing APIs to
34+
provide a unified experience for GPU programming in Rust. Developers should not need
35+
to worry about underlying platforms (Vulkan vs. CUDA) or low-level IR (SPIR-V vs.
36+
NVVM) unless doing specialized work. This would make GPU programming in Rust feel as
37+
seamless as its abstractions for CPU architectures or operating systems.
38+
39+
Christian Legnitto ([LegNeato](https://github.com/LegNeato)) is one of the maintainers
40+
for both projects.
41+
42+
- **[`rustc` PTX
43+
backend](https://doc.rust-lang.org/rustc/platform-support/nvptx64-nvidia-cuda.html)**:
44+
The Rust compiler's experimental `nvptx` backend generates CUDA's low-level
45+
[PTX](https://docs.nvidia.com/cuda/parallel-thread-execution/) IR. We plan to
46+
collaborate with this effort to determine how it can complement or integrate with
47+
`rust-cuda`'s NVVM IR approach.
48+
49+
- **[cudarc](https://github.com/coreylowman/cudarc)**: This crate provides a host-side
50+
abstraction for CUDA programming in Rust. We aim to explore how `rust-cuda` can
51+
interoperate with `cudarc` or consolidate efforts.
52+
53+
For a broader look at Rust and GPUs, check out the [ecosystem overview
54+
page](https://rust-gpu.github.io/ecosystem/).
55+
56+
## Short-Term Roadmap
57+
58+
Our immediate focus is on stabilizing and modernizing the Rust CUDA project:
59+
60+
- **Merging outstanding PRs**: Address the backlog of contributions.
61+
- **Closing outdated issues**: Clean up the issue tracker to focus on actionable problems.
62+
- **Updating dependencies**: Support the latest Rust toolchain and CUDA versions.
63+
- **New website**: Launch a site with updated documentation, examples, and resources to make it easier for users to get started.
64+
65+
## Medium-term roadmap
66+
67+
Once the Rust CUDA project is stabilized, we will explore new opportunities to advance
68+
its functionality and integrate with the broader ecosystem:
69+
70+
- **Rust-C++ interop**: Investigate Rust's recent C++ interoperability initiatives to
71+
see if they can be used to simplify host and library integration for CUDA.
72+
- **Rust community collaboration**: Work with other Rust CUDA projects to consolidate
73+
and unify host-side tools and workflows where appropriate.
74+
- **PTX backend collaboration**: Coordinate with the [rustc PTX
75+
backend](https://doc.rust-lang.org/rustc/platform-support/nvptx64-nvidia-cuda.html)
76+
team to explore shared infrastructure and evaluate transitioning Rust CUDA from NVVM
77+
IR to raw PTX.
78+
- **`rust-gpu` collaboration**: Leverage `rust-gpu`'s tooling and compiler
79+
infrastructure to reduce duplication.
80+
81+
## Long-Term Roadmap
82+
83+
Our long-term vision is to make GPU programming in Rust safe, ergonomic, fast, and fully
84+
integrated into the language:
85+
86+
- **Rust compiler integration**: Rust CUDA is currently an out-of-tree compiler backend.
87+
We aim to bring it in-tree and make it officially supported.
88+
- **Unified GPU API**: Merge developer-facing APIs of `rust-cuda` and `rust-gpu`. This
89+
would abstract away platform and IR differences for most developers, leaving
90+
platform-specific concerns only for low-level or specialized use cases.
91+
- **Language evolution**: Contribute to the Rust language's evolution to better support
92+
GPU programming, ensuring it remains safe, performant, and developer-friendly.
93+
94+
## Acknowledgments
95+
96+
We want to extend our heartfelt thanks to [Riccardo
97+
D'Ambrosio](https://github.com/RDambrosio016) for starting the Rust CUDA project and
98+
putting in so much work to bring it to life. His efforts have laid the foundation for
99+
everything we are building on today. **Thank you, Riccardo!**

blog/authors.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
LegNeato:
22
name: Christian Legnitto
3-
title: Rust GPU maintainer
3+
title: Rust GPU and Rust CUDA maintainer
44
url: https://github.com/LegNeato
55
image_url:
66
## Image URL managed by the fetchAuthorImages plugin. Changes may be overwritten.

blog/tags.yml

+5
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,8 @@ performance:
2727
label: performance
2828
permalink: /performance
2929
description: Performance measuring and tuning
30+
31+
cuda:
32+
label: cuda
33+
permalink: /cuda
34+
description: Related to CUDA

0 commit comments

Comments
 (0)