I strongly dislike CUDA. Once you have allowed that proprietary cr*p into your C++ codebase, it is very hard to get rid, and you end up with code that is either tied to a single vendor or an #ifdef hell, probably both.
The best way to program GPUs is face up to the reality that they are not the same machine as the CPU, write your kernels in separate files, and launch them manually, like in Metal, OpenCL, and D3D12, etc.
These days we even have DSLs like Triton that make kernel writing much more ergonomic than anything you would hope to achieve in Rust.
show comments
dllu
Since NVIDIA owns huggingface now and huggingface has the excellent Candle [1] crate for inference on Rust, this seems like a good step towards nice native Rust kernels.
Really exciting but it reads like Claude instead of what Nvidia posts have generally been like in the past. I don't need nor want my tech blogs to sound like a young adult novel.
show comments
HexDecOctBin
Anyone know when Rust's std::autodiff will become stable? Assuming this Rust support expands to other GPU vendors, autograd will probably be the only reason to use Slang instead of Rust anymore.
show comments
michalsustr
Not a cuda programmer, but since they’re making a new API, why would they already make it inconsistent at start? :-/ I’m referring to the examples a,b,c vs z,x,y (different ordering of output elements)
My understanding is not so deep regarding GPU programming or Rust... Does this mean anything regarding Nvidia GPUs and WebAssembly / WebGPU?
show comments
evaltoken
Interesting direction from Nvidia. Anything that makes writing reliable GPU code less painful is definitely a good thing.
salsa_catsup
Does this mean I can write shaders in Rust for use with WGPU or Vulkan?
show comments
lsofzz
I read this the other day - definitely think it is the right direction Nvidia is taking.
Thank you NVIDIA - for once (not twice though - you've given us nothing but despair for Linux+GPU).
calini
Do it in Go and I’m interested
the__alchemist
I'm looking forward to trying these when they stabilize! I currently use WGPU for graphics, and cudarc for CUDA.
Note: Cuda-oxide is similar to Cudarc's host component, but uses a rust-style kernel dialect. Advantage: Share structs between host and device. Disadvantage: Trading standard Cuda kernels for a new, WIP dialect.
I haven't tried the tile API yet; looking forward to it.
The last time I checked, Cuda Oxide was Linux only, and required Async; these are why I haven't tried it yet.
show comments
kalikingkorea
hmmm interesting
jtfrench
I wonder how many parallels there are between CUDA's Tile abstraction and that of Metal.
claiir
> The launch is checked rather than trusted.
Damn even Nvidia is putting out fully Claude-written articles.
show comments
m00dy
Thank you Nvidia !! You're in the right path.
LarsDu88
In this age of LLM written everything which has softly killed my motivation for learning Rust somewhat, this has revived my interest if not only for the fact the LLMs haven't yet been trained on this yet!
show comments
Danox
The recent circular moves that Nvidia is making is designed to wrap things around them, anything to keep the AI model party going.
bt1a
Will it then be possible to query TJunc hotspot temps on linux?
what this article tells me is that no one at Nvidia actually cares about this project whatsoever. otherwise, they would have had a person actually write the announcement.
rvz
First of all, this is a pre-1.0 release that requires a nightly Rust compiler (if you choose the SIMT track with cuda-oxide) so that one is going to be unstable software.
Secondly, When an issue occurs with a kernel or you want to write your own custom kernel in Rust, now we need to diagnose if the problem came from either cuda-oxide (SIMT), Rust's side, CUDA or Tile (If you decide to choose the Tile track).
Another dependency into the list and course everything is open source except CUDA itself. So any issue that happens on the CUDA level, you are forced to wait for them to fix it.
I strongly dislike CUDA. Once you have allowed that proprietary cr*p into your C++ codebase, it is very hard to get rid, and you end up with code that is either tied to a single vendor or an #ifdef hell, probably both.
The best way to program GPUs is face up to the reality that they are not the same machine as the CPU, write your kernels in separate files, and launch them manually, like in Metal, OpenCL, and D3D12, etc. These days we even have DSLs like Triton that make kernel writing much more ergonomic than anything you would hope to achieve in Rust.
Since NVIDIA owns huggingface now and huggingface has the excellent Candle [1] crate for inference on Rust, this seems like a good step towards nice native Rust kernels.
[1] https://github.com/huggingface/candle
Really exciting but it reads like Claude instead of what Nvidia posts have generally been like in the past. I don't need nor want my tech blogs to sound like a young adult novel.
Anyone know when Rust's std::autodiff will become stable? Assuming this Rust support expands to other GPU vendors, autograd will probably be the only reason to use Slang instead of Rust anymore.
Not a cuda programmer, but since they’re making a new API, why would they already make it inconsistent at start? :-/ I’m referring to the examples a,b,c vs z,x,y (different ordering of output elements)
How does this compare to vectorware? (https://www.vectorware.com/blog/)
My understanding is not so deep regarding GPU programming or Rust... Does this mean anything regarding Nvidia GPUs and WebAssembly / WebGPU?
Interesting direction from Nvidia. Anything that makes writing reliable GPU code less painful is definitely a good thing.
Does this mean I can write shaders in Rust for use with WGPU or Vulkan?
I read this the other day - definitely think it is the right direction Nvidia is taking.
Thank you NVIDIA - for once (not twice though - you've given us nothing but despair for Linux+GPU).
Do it in Go and I’m interested
I'm looking forward to trying these when they stabilize! I currently use WGPU for graphics, and cudarc for CUDA.
Note: Cuda-oxide is similar to Cudarc's host component, but uses a rust-style kernel dialect. Advantage: Share structs between host and device. Disadvantage: Trading standard Cuda kernels for a new, WIP dialect.
I haven't tried the tile API yet; looking forward to it.
The last time I checked, Cuda Oxide was Linux only, and required Async; these are why I haven't tried it yet.
hmmm interesting
I wonder how many parallels there are between CUDA's Tile abstraction and that of Metal.
> The launch is checked rather than trusted.
Damn even Nvidia is putting out fully Claude-written articles.
Thank you Nvidia !! You're in the right path.
In this age of LLM written everything which has softly killed my motivation for learning Rust somewhat, this has revived my interest if not only for the fact the LLMs haven't yet been trained on this yet!
The recent circular moves that Nvidia is making is designed to wrap things around them, anything to keep the AI model party going.
Will it then be possible to query TJunc hotspot temps on linux?
Worth mentioning that Nvidia open sourced CUDA Tile IR ~8 months ago. And yes the code is open source too. https://news.ycombinator.com/item?id=46330732
what this article tells me is that no one at Nvidia actually cares about this project whatsoever. otherwise, they would have had a person actually write the announcement.
First of all, this is a pre-1.0 release that requires a nightly Rust compiler (if you choose the SIMT track with cuda-oxide) so that one is going to be unstable software.
Secondly, When an issue occurs with a kernel or you want to write your own custom kernel in Rust, now we need to diagnose if the problem came from either cuda-oxide (SIMT), Rust's side, CUDA or Tile (If you decide to choose the Tile track).
Another dependency into the list and course everything is open source except CUDA itself. So any issue that happens on the CUDA level, you are forced to wait for them to fix it.
AI slop article, how can I trust on this?
Nvidia only? Typical.
This is more promising: https://github.com/Rust-GPU/rust-gpu/
The world is unsafe
Rust for GPU programming? My CUDA debugging sessions just got a whole lot less painful, hopefully.
Been waiting for something like this. CUDA C++ is a pain; Rust's safety for kernel programming could be a game changer.
Makes me sad that Go doesn't get love. I feel like Go is perfect for LLMs.