Skip to content

Commit 0a23580

Browse files
committed
Rust CUDA August project update
1 parent c27a17f commit 0a23580

File tree

1 file changed

+113
-0
lines changed

1 file changed

+113
-0
lines changed

blog/2025-08-11-rust-cuda-update.mdx

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
---
2+
title: "Rust CUDA August 2025 project update"
3+
authors: [LegNeato]
4+
draft: true
5+
tags: ["announcement", "cuda"]
6+
---
7+
8+
import Gh from "@site/blog/src/components/UserMention";
9+
10+
Rust CUDA enables you to write and run [CUDA](https://developer.nvidia.com/cuda-toolkit)
11+
kernels in Rust, executing directly on NVIDIA GPUs using [NVVM
12+
IR](https://docs.nvidia.com/cuda/nvvm-ir-spec/index.html).
13+
14+
Work continues at a rapid pace with significant improvements landing regularly. Here's
15+
what's new since our last update.
16+
17+
**To follow along or get involved, check out the [`rust-cuda` repo on GitHub](https://github.com/rust-gpu/rust-cuda).**
18+
19+
<!-- truncate -->
20+
21+
## Chimera demo blog post
22+
23+
We published a [blog post](./2025-07-25-rust-on-every-gpu.mdx) about our
24+
[demo](https://github.com/LegNeato/rust-gpu-chimera) showcasing a single shared Rust
25+
codebase that runs on every major GPU platform. The demo uses Rust CUDA for CUDA
26+
support.
27+
28+
The post reached [#1 on Hacker News](https://news.ycombinator.com/item?id=44692876) and
29+
was [popular on
30+
Reddit](https://www.reddit.com/r/rust/comments/1m96z61/rust_running_on_every_gpu/).
31+
32+
## Rust toolchain updated
33+
34+
Rust CUDA includes a compiler backend that compiles regular Rust code into [NVVM
35+
IR](https://docs.nvidia.com/cuda/nvvm-ir-spec/index.html). Because of this deep
36+
integration with compiler internals, Rust CUDA must use a very specific version of the
37+
Rust compiler. Rust CUDA now supports `nightly-2025-06-23`.
38+
39+
This aligns Rust CUDA with the [Rust GPU](https://github.com/Rust-GPU/rust-gpu) project,
40+
which uses the [same toolchain
41+
version](https://github.com/Rust-GPU/rust-gpu/blob/df1628a032d22c864397417c2871b74d602af986/rust-toolchain.toml).
42+
Having both projects on the same Rust version enabled the aforementioned
43+
[demo](https://github.com/LegNeato/rust-gpu-chimera) to work with fewer hacks.
44+
45+
## Migration to glam
46+
47+
Maintainers <Gh user="jorge-ortega" /> and <Gh user="LegNeato" /> migrated from the
48+
`vek` math library to [`glam`](https://github.com/bitshifter/glam-rs) in [PR
49+
#180](https://github.com/Rust-GPU/Rust-CUDA/pull/180). Glam is used by the [Rust
50+
GPU](https://github.com/Rust-GPU/rust-gpu) project and this consistency enables easier
51+
code reuse.
52+
53+
While `vek` is still re-exported at `cuda_std::vek`, it is deprecated and will be
54+
removed in the future.
55+
56+
## i128 support
57+
58+
<Gh user="LegNeato" /> implemented emulation for `i128` operations that aren't natively
59+
supported by the version of LLVM NVIDIA's tools are based on.
60+
61+
With this support, Rust CUDA's compiler backend can now correctly compile the [`sha2`
62+
crate from crates.io](https://crates.io/crates/sha2). We've added [an
63+
example](https://github.com/Rust-GPU/Rust-CUDA/tree/main/examples/cuda/sha2_crates_io)
64+
demonstrating the same `sha2` crate used on both CPU and GPU.
65+
66+
Using unmodified crates from crates.io on the GPU is one of the unique benefits of using
67+
Rust for GPU programming.
68+
69+
## Target feature support
70+
71+
[PR #239](https://github.com/Rust-GPU/Rust-CUDA/pull/239) added support for CUDA compute
72+
capability target features. Developers can now use `#[target_feature(enable =
73+
"compute_75")]` to conditionally compile code for specific GPU architectures, enabling
74+
better optimization and feature detection at compile time.
75+
76+
For more details, check out the
77+
[documentation](https://rust-gpu.github.io/Rust-CUDA/guide/compute_capabilities.html).
78+
79+
## Added compiletests
80+
81+
Previously we only verified that the project built in CI. GitHub Actions runners do not
82+
have NVIDIA GPUs, so we could not run tests to confirm correct behavior. This made
83+
changes risky because regressions could slip through unnoticed.
84+
85+
<Gh user="LegNeato" /> ported the
86+
[`compiletest`](https://github.com/Manishearth/compiletest-rs) infrastructure from [Rust
87+
GPU](https://github.com/Rust-GPU/rust-gpu) to work with Rust CUDA. Compile tests let us
88+
confirm that the compiler backend behaves correctly and generates the expected code.
89+
While not full runtime testing, this change significantly improves reliability and makes
90+
regressions easier to catch.
91+
92+
## Multi-architecture Docker images
93+
94+
Rust CUDA uses a version of NVVM based on LLVM 7.1 and getting it set up manually can be
95+
tedious and error-prone. Rust CUDA's [docker
96+
images](https://github.com/orgs/Rust-GPU/packages?repo_name=Rust-CUDA) aim to solve the
97+
setup issue. <Gh user="LegNeato" /> updated our Docker infrastructure to add support for
98+
ARM64.
99+
100+
## Call for contributors
101+
102+
We need your help to shape the future of CUDA programming in Rust. Whether you're a
103+
maintainer, contributor, or user, there's an opportunity to [get
104+
involved](https://github.com/rust-gpu/rust-cuda). We're especially interested in adding
105+
maintainers to make the project sustainable.
106+
107+
Be aware that the process may be a bit bumpy as we are still getting the project in
108+
order.
109+
110+
If you'd prefer to focus on non-proprietary and multi-vendor platforms, check out our
111+
related **[Rust GPU](https://rust-gpu.github.io/)** project. It is similar to Rust CUDA
112+
but targets [SPIR-V](https://www.khronos.org/spir/) for
113+
[Vulkan](https://www.vulkan.org/) GPUs.

0 commit comments

Comments
 (0)