discussion: what about alterntives? #5
Replies: 4 comments 6 replies
|
Hi @Redhawk18 — thanks for raising this. We try to address it directly in the book's Rust + GPU Ecosystem appendix. I just realized CubeCL isn't called out by name there yet — I'll fix that. To answer your question, there's some surface-level similarity in that both projects let you write GPU kernels in Rust. But up close, as we read the two projects, the design centers point in different directions, and we don't see them as alternatives so much as two projects working on different slices of the same Rust + GPU problem. CubeCL's design center is portability across hardware. It's an embedded DSL: cuda-oxide's design center is the CUDA programming model in safe Rust on NVIDIA. We're a The way we think about it: if your target list is "as many GPUs as possible" and the portable subset of features works for you, CubeCL is the right tool — and cubek on top of it already gives you tuned matmul and friends. If you want the full CUDA programming model expressed in safe Rust on NVIDIA — PTX-level intrinsics, cooperative groups, async pipelines, clusters — that's what we're building. Rust-GPU, which you also asked about, is covered in the ecosystem page's Other neighbors section — different again: Both directions are valuable, and we expect the projects to remain complementary — different parts of the same Rust + GPU stack rather than an alternative. I'll update the appendix to call out CubeCL specifically. |
|
Hi all, https://github.com/NiekAukes/rust-gpu-hybrid-compiler (modified compiler) https://benevol2025.github.io/pre/paper04.pdf (summary paper + small case study) |
|
Great project! Please also mention https://github.com/juntyr/rust-cuda as prior work (different from the rust-cuda you already list). My rust-cuda was, to the best of my knowledge, the first to support generic kernels (though with more hacks required) and safe-by-design kernel launches with slice wrappers (similar to yours) but also support for allocated memory that is moved to or shared with the GPU (something you could get inspired by and copy). My rust-cuda was built for a specific project and I haven’t been able to actively maintain it, so I’m happy that you’re carrying on many of the ideas in a much cleaner form, and it would be awesome if you’d also adopt some of the other ones (e.g. memory transfers). You can find an example of a kernel using all functionality and cross-crate code in https://github.com/juntyr/necsim-rust/blob/c8c3023a114aeacb97e130a60eff779f9c7cb539/rustcoalescence/algorithms/cuda/gpu-kernel/src/lib.rs#L47 |
Uh oh!
There was an error while loading. Please reload this page.
Have you heard about cubecl/burn or rust-gpu? Cubecl is extremely similar to this project and has gotten to the point where the maintainers have a collection of kernels called cubek.
All reactions