Nvidia announces native GPU programming in Rust (developer.nvidia.com)

663 points by nonmaskable a day ago

jacobgorm 10 hours ago

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.

tombert 9 hours ago

> I strongly dislike CUDA. Once you have allowed that proprietary cr*p

Genuine question...why not just type "crap"? It's not even that much of a curse, but I've never really understood the point of self-censorship. If you don't want to curse then you could just use a non-curse word.

justushamalaine 2 minutes ago

I thought that cp*p is some kind of ugly cuda pointer declaration :D And being non-standard C++ syntax it wouldn’t compile.

throwaway85825 2 minutes ago

Normative behavior has shifted due to pervasive censorship and surveillance.

xbmcuser 8 hours ago

* is used to give emphasis and show that they are using the word as curse word rather just calling it bad

josephg 7 hours ago

Tade0 an hour ago

westonmyers 4 hours ago

vladde 3 hours ago

lsofzz 5 hours ago

vachina 4 hours ago

Platform may retroactively make up and enforce rules that makes your content violate terms (and remove them)

See YouTube.

tombert 3 hours ago

lovelearning 9 hours ago

It may be to bypass censorship, rather than self-censorship. Some platforms block or shadowban comments with curse words. Not sure about this platform.

arcanemachiner 8 hours ago

bmacho an hour ago

IMO cr*p and crap are both valid but separate swear words. People have a wide option to choose from when they want to swear, and people like variety (much much more than LLMs do). People also tend to influence each other with their usages: cr*p is popular because it is popular.

Otherwise cr*p is just as good as crap, shit, horseshit, poopoo or such.

edit: * replaced with \* as HN interprets asterisks as formatting for emphasis. Thx latexr for informing me

latexr 38 minutes ago

capl 3 hours ago

cause you might go to the eternal flames if you say a no-no word online

brobdingnagians 3 hours ago

Cthulhu_ 3 hours ago

ImHereToVote 2 hours ago

What if a toddler is browser HN and sees the curse word?

jimbob45 4 hours ago

His kids were probably watching him type over his shoulder and he didn’t want to hear, “Daddy, what does crap mean?”

xxs an hour ago

Cthulhu_ 3 hours ago

tombert 3 hours ago

c0nducktr 5 hours ago

My guess is that jacobgorm will not reply. I would love a reply, because I want to understand how others think.

I believe we'll be left to wonder.

fg137 10 hours ago

> Once you have allowed that proprietary cr*p into your C++ codebase

People have been doing that all the time for every kind of codebase. It's just part of the business. I don't see how it's worth having any emotions or opinions about it. Seems like you are wasting your energy.

Are win32 APIs proprietary? So you decide to use them, use a wrapper/UI framework, or don't develop for Windows. Easy choice.

Developing for embedded devices? So you read the manufacturers manual and implement based on the spec, use some sort of HAL if they are available, or you don't have a job. Even simpler.

Hendrikto 39 minutes ago

> I don't see how it's worth having any emotions or opinions about it.

Ironic, seeing as that is an opinion about it. Also weird telling people in an online discussion forum not to have opinions.

infamouscow 5 hours ago

Many software engineers forget they're employee of a business.

worik 7 hours ago

> Are win32 APIs proprietary?

Yes. And crap. Not in my code bases.

josephg 7 hours ago

fsloth 5 hours ago

jacobgorm 10 hours ago

CUDA is not an API, CUDA is a language, so you cannot make that comparison.

pjmlp 4 hours ago

esseph 9 hours ago

nicwilson 8 hours ago

Launching kernels manually is an error prone PITA which I believe is the principle reason for CUDA's popularity. Having the compiler give an error when you mess up is a huge benefit. But having the compiler allow you to express "I want to launch this kernel over a grid with these dimensions, with these arguments" as a single expression is where the vast majority of the value comes from.

The having it all in a single file is mostly an artefact of the fact that it is C++, because C++ is single file at a time compilation. In D (which is multiple files in a single compiler invocation) with DCompute (which targets CUDA and OpenCL with upcoming support for Vulkan and Metal), you are required to write the kernels in a separate module, but you get all the benefits of the compiler complaining when you mess up _and_ the expressivity of "launch me this kernel".

oblio 4 hours ago

> Having the compiler give an error when you mess up is a huge benefit.

Shouldn't this be alleviated by the current code generation machines?

nicwilson 3 hours ago

winwang 7 hours ago

Having also played with Metal and WebGPU (at least years ago), I would say that CUDA is, amazingly, the best GPGPU API we have. Do I wish we had an open source parallel programming language as good or better than it? Yes. But asymmetrically hating on CUDA like this is how we continue to lag behind it in UX.

> 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

Not to mention that this is a completely sane way to use CUDA as well.

pjmlp 4 hours ago

People that attack proprietary APIs always miss the point why most devs outside FOSS circles prefer them.

Turns out when one isn't ideologically against something they aren't willing to put up with a lesser experience just for the cause.

darkwater 2 hours ago

harrison_clarke 5 hours ago

from what i can tell, you're going to be stuck with that no matter what you do

i'm currently using vulkan, and HLSL via dxc. which should be portable but it's not.

apple refuses to support vulkan, and relies on moltenvk and there's a bunch of OS/hardware/driver differences no matter what you do, that you'll probably have to feature test for, and compile a few different versions of your code no matter what you do

i think if you're doing something that you don't have to distribute to customers, just picking one stack and getting locked in has some appeal.

it leaves you vulnerable to lockin. but, especially in the age of ai, "claude, port this to vulkan" seems like a good enough defense against that

pavon 10 hours ago

> 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

Isn't that how CUDA code is normally written?

jacobgorm 10 hours ago

No. CUDA allows you to write all the code in a single file, and uses a preprocessor to split it back out and pass it through separate compilers, one for host and one for device.

compiler-guy 9 hours ago

melodyogonna 10 hours ago

You could also use Mojo, one language for all targets.

adgjlsfhk1 9 hours ago

Or julia if you want a much more mature ecosystem.

patagurbon 9 hours ago

carefree-bob 10 hours ago

I began to lose interest after the acquisition. Have you been following along, are they still going to open source it?

ecl3ctic 10 hours ago

YuechenLi 10 hours ago

15155 7 hours ago

I don't mind CUDA, I do mind that all of the SDKs don't dynamically load the various CUDA shared libraries at runtime.. intertwining itself into your application linking process makes for extreme binary portability inconvenience.

throwaway334212 6 hours ago

Anyone here looking at Modular's offerings?

anon291 7 hours ago

? I find it hard to see the issue here. Just put it in a separate file and call it?

bigyabai 10 hours ago

Is this satire? D3D12 and Metal aren't any less proprietary than CUDA.

undefined 10 hours ago

[deleted]

cpill 10 hours ago

yeah, just write a stub/wrapper around it and abstract. it's the classic coupling problem. nothing to do with CUDA

wangxili1997 an hour ago

[flagged]

unPeuResilient 2 hours ago

[dead]

dllu 11 hours ago

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

jacobgorm 10 hours ago

Nobody cares if kernels are written in Rust. Kernels were meant to be written in C, but if you want to go more high-level try Triton or a similar DSL that nicely abstract tile sizes etc.

keithnz 10 hours ago

kernels aren't meant to be written by any defined language. C is just a traditionally good default language that took over from assembly. No particular reason we have to stick with C.

chadcmulligan 8 hours ago

pjmlp 4 hours ago

That is exactly why OpenCL failed adoption, focusing on C, instead of being polyglot like CUDA.

zozbot234 3 hours ago

Anoian an hour ago

I have never seen a comment this gray

undefined 10 hours ago

[deleted]

cpill 10 hours ago

oh no no no, this is going to break the CPP hold on AI and game dev.

pjmlp 4 hours ago

winwang 7 hours ago

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.

aabhay 6 hours ago

I’ve had this happen to me several time over the past weeks and it’s gone from quaint to humorous to farcical to outright “is-the-world-gaslighting-me” insane.

Just today I was reading Stanley Druckenmiller’s op ed in WSJ. This dude is like 80 and has made billions of dollars, and he got Claude to write his op ed???

Unbelievable. And the tells are so obvious, yet people still love the Claude-like quips and odd grammatical choices that read like halfway asshole halfway mid-sentence confusion.

sebmellen an hour ago

That op ed was absurd. I respect Druckenmiller a lot and am always impressed with his lucidity in interviews. The Claude “ick” was all over his writing.

IshKebab 2 hours ago

Yeah definitely Claude. Lazy authors, if you're going to get AI to write for you please use Astra instead - it makes way less annoying prose than Claude.

HexDecOctBin 3 hours ago

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.

chkmr 2 hours ago

I was told in the 2025 LLVM dev meeting that it will always stay in nightly because it's not practical for them to provide long-term stability guarantees that is expected of stable Rust.

minraws 2 hours ago

Not in 2026.

michalsustr 2 hours ago

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)

manyatoms 10 hours ago

How does this compare to vectorware? (https://www.vectorware.com/blog/)

LegNeato 8 hours ago

VectorWare founder here. We are working with them and stoked they are investing more in Rust. I just gave a talk at RustConf about our different takes (https://rustconf2026.sched.com/event/2KNQj/making-gpus-feel-...). The video isn't up yet but you should check it out when it is. The efforts are complementary.

binarybana 7 hours ago

Towards the end of the post, we (NVIDIA) mention that this work was done in collaboration with Vectorware and others in the Rust community. And we can't wait to build further with the community.

Swiffy0 an hour ago

My understanding is not so deep regarding GPU programming or Rust... Does this mean anything regarding Nvidia GPUs and WebAssembly / WebGPU?

onion2k an hour ago

No. Rust is a non-web programming language.

evaltoken 8 hours ago

Interesting direction from Nvidia. Anything that makes writing reliable GPU code less painful is definitely a good thing.

salsa_catsup 6 hours ago

Does this mean I can write shaders in Rust for use with WGPU or Vulkan?

berkes an hour ago

The way I understood it, rust would become an option next to Vulkan, WGPU (and opengl etc?).

But only for compute tasks. So, practically an alternative language to write compute shaders in.

ivanjermakov 2 hours ago

WGPU/Vulkan don't work with PTX shaders by default, additional translation would be needed.

On a side note, Vulkan has extension to launch CUDA kernels: https://docs.vulkan.org/refpages/latest/refpages/source/VK_N...

lsofzz 5 hours ago

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).

kalikingkorea 23 minutes ago

hmmm interesting

calini 3 hours ago

Do it in Go and I’m interested

the__alchemist 11 hours ago

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.

embedding-shape 10 hours ago

cudarc been great for me, because it's easy to look up existing examples and references, and it maps 1-to-1 with what I see. I'm already having a tough time with CUDA itself, a dialect of it makes a tad harder to rely on previous work.

Seems more ergonomic in general though, both approaches they share, compared to cudarc, and less build infrastructure and fiddling with environments, which is great.

jtfrench 4 hours ago

I wonder how many parallels there are between CUDA's Tile abstraction and that of Metal.

claiir 11 hours ago

> The launch is checked rather than trusted.

Damn even Nvidia is putting out fully Claude-written articles.

bayindirh 10 hours ago

That's actually a magnificent observation. This is not only an indication of a keen eye, but a trained brilliant mind as well.

hitekker 10 hours ago

You’re absolutely right!

jubilanti 8 hours ago

One might even say it is load-bearing on the seam!

lioeters 6 hours ago

keybrd-intrrpt 10 hours ago

> even Nvidia

Why "even Nvidia"?

They are fully behind using AI for basically everything.

What's next? "Damn, even McDonald's is putting out unhealthy food"

manquer 8 hours ago

I think implication being organizations with 40,000+ employees and even more consultants and contractors plus a lot of budget are also using LLMs to draft public facing content instead of paying for content writers or even just proof readers .

It points to friction rather than cost economics. Same reason we are always surprised why multi billion dollar product companies with millions of install base prefer electron instead of a native app.

freeopinion 8 hours ago

pjmlp 4 hours ago

jchw 9 hours ago

Sure, but even Anthropic doesn't appear to use Claude for blog posts. (I don't think anyone should. The prose stinks.)

keybrd-intrrpt 9 hours ago

saghm 7 hours ago

Their CEO also has the dubious distinction of claiming we've reached AGI more then once: https://www.theverge.com/ai-artificial-intelligence/985597/j...

RickHull 7 hours ago

Is Jensen Huang still all-in on OpenClaw? That moment feels more like a flash in the pan.

dannyw 8 hours ago

I believe most of their marketing videos use fairly convincing text to speech too, not voice actors.

dprkh 8 hours ago

McDonald's food is not even that unhealthy. I just tried a Burger King burger the other day and it's terrible. I think it's like 2000 calories in a single burger or something.

xxs 38 minutes ago

timacles 7 hours ago

calvinmorrison 8 hours ago

huflungdung 9 hours ago

[dead]

undefined 10 hours ago

[deleted]

daemonologist 9 hours ago

I get the impression that Nvidia employees don't care too much - I started seeing fully AI-written "documentation" on some of their smaller projects more than a year ago (i.e., before it was even slightly a good idea).

DonsDiscountGas 9 hours ago

People never really read documentation before. Agents do read it now, and they seem to understand LLM-written text just fine.

WD-42 9 hours ago

dannyw 8 hours ago

latentsea 7 hours ago

undefined 9 hours ago

karim79 9 hours ago

What are we for, I ask? What the hell are we now. Chatters to LLMs now? Is this our future? It really is starting to feel like it now.

freeopinion 8 hours ago

Do you have the stomach to walk into a high school in the USA these days? Teachers use AI to generate assignments. Students feed the assignments to AI and submit the responses. Teachers feed the student submissions to an AI for grading.

iamarobot 6 hours ago

upboundspiral 7 hours ago

karim79 8 hours ago

arcanemachiner 8 hours ago

Dude I am in slop fucking hell right now. There is still room for a human touch, without which the agents will lever us harder and faster into a world of incomprehensible garbage.

karim79 8 hours ago

karim79 6 hours ago

I find it interesting that this was downvoted twice without explanation.

written-beyond 9 hours ago

I hadn't read the article and read this comment as though NVIDIA themselves were implying that this library was checked but not trusted by them since it was fully LLM generated.

pjmlp 4 hours ago

Another of those AI is bad for articles, great for coding.

Plenty of us share the same opinion on doing reviews of AI generated code.

pyrophane 8 hours ago

Yeah. I think if the text is written for other machines, then by all means have an LLM generate it, but if it is intended for a human audience, have a human being write it.

We are still much better at writing in a way that doesn't waste other people's time.

manyatoms 10 hours ago

not to worry, they have an 'AI generated summary' box too

greenavocado 10 hours ago

Its a recursive summarization pyramid

smallmancontrov 8 hours ago

pizzafeelsright 10 hours ago

jorl17 8 hours ago

It is the number 1 thing I cannot stand with Claude slop. It's a sort of anthropomorphization of language. Every "thing" does, produces, feels, wants, asks, answers, etc....

- "Launch is checked"

- "Question is asked"

- "The implementation answers"

- "The model wants"

- "The results name"

- "The connection surfaces"

- "The prompt wires"

- "The feature rides the mechanism"

Every single fucking thing is alive, wants things, and does things.

It's terrible. Infuriating. I want to rip my eyeballs out reading this filth. All. The. Time. "The anger is real".

xxs 9 minutes ago

All of the examples read like: "The dude abides", except in a grotesque/parody way.

karim79 7 hours ago

Create any page with a file uploader. They all look the same now. It's like the Twitter Bootstrap days of responsive design. You'll get an icon which looks like ones on (on the drop space) those sites which are like "you must wait 60 seconds for this file to download".

It's so horrible. The human element has been completely removed and replaced by..... mediocre.

onion2k 3 hours ago

mahboi 10 hours ago

Thanks, saved me a few minutes

latentsea 7 hours ago

Even their writing skills are getting rusty.

saadn92 7 hours ago

it seems like that's the way the industry is headed

api 9 hours ago

Is that your honest load bearing assessment you’re going to flag?

fwlr 9 hours ago

Claude, rewrite my graphics card in Rust. Make no mistakes.

undefined 9 hours ago

[deleted]

m00dy 2 hours ago

Thank you Nvidia !! You're in the right path.

LarsDu88 10 hours ago

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!

suresk 6 hours ago

I've found sorta the opposite - in any area, it can just do everything for you, or it can be an incredible teacher. I've been re-learning a lot of higher-level math and it has been an knowledgeable, infinitely patient, always-available tutor. Of course, I could just have it do just about any math I want for me, but that's not the point.

Kinda the same with language/technology stuff - it can be a great tutor and it can scaffold other parts of a project for you. It can give you feedback and let you focus on the interesting parts.

I guess the motivation itself may be hard because of the fear of it taking over much of our jobs, but having this kind of help/feedback is pretty cool for the sake of learning things just because they are interesting!

tete an hour ago

> I've found sorta the opposite - in any area, it can just do everything for you, or it can be an incredible teacher.

Please don't. I've had all of Codex, Claude and Gemini convincingly tell me absolutely wrong stuff, pointing it out with easily verifiable example they come up with more and more weird reasons.

Things don't become correct simply because most sources are again - easily and logically verifiable - wrong. This already was a plague when people "just googled" stuff and effectively returned with the most SEO optimized answer. Now we have very convincingly written instances all over the place.

If these were singular instances I wouldn't be so worried, but if you are learning it already is very easy to learn something wrong. This is why back in the days when people still used physical books to learn new things it was a good idea to check first which books are actually recommended. There have been a lot of "experts" that wrote things they clearly misunderstood but worked for all the examples in their books.

To give a common example for both the backend and frontend devs, that isn't about a specific projects. LLMs and Google searches frequently turn out wrong results regarding CORS caching and how it works in relation to domains/hostnames. The circumstances under which Content-Disposition work are another example. I think a lot of wrong statements that LLMs are "convinced" about are due to wrong statements (sometimes in otherwise correct response) of popular Stack Overflow answers.

It's saddening how much wrong "common knowledge" exists in the industry. I have been bitten by a lot of these, but it feels when people don't even actually code and think anymore this will just rise forever.

suresk an hour ago

impulser_ 10 hours ago

LLM don't need to be trained in a library to use it well. It's just Rust which they know well.

brainless 7 hours ago

I was learning Rust slowly when the LLM enabled coding became good enough. I switched from learning to full on building with Rust. I still learn high level concepts as needed but I will not be able to write Rust on my own at all.

And that sounds scary but the way I got over the fear is by realizing there are many things that I do very well but I do not know their internals very well. Driving is an example. I barely understand what the steering wheel, clutch or brake pedals do. I have driven over 130,000 Kms and I will perhaps drive more than double that in the next many years.

I have been building software since PHP/Drupal days. Got into AWS S3 as a beta user. Adopted Memcached (and MQ) in 2008 out of necessity. Then Python/Django for 10 years. Then Rust. And tons of JS/TS. I owe a lot to my curiosity. I believe we can keep learning what we need and still delegate most of programming to agents.

QuaternionsBhop 6 hours ago

There are two types of programmers: the pragmatists who see programming as a chore and would gladly never write a line of code again given the right tools, and the gardeners who don't want their enjoyable and rewarding garden-tending work taken away from them.

applfanboysbgon 3 hours ago

w4yai 10 hours ago

And what prevent you exactly ?

There were humans far superior than you for writting Rust before LLM, now there's a LLM. The only difference is price and time execution.

You get an awesome teacher (LLM) ready to answer all your questions about Rust.

And you still find excuses not to learn it ?

At some point, just realize you've been lazy to learn it and LLMs are just an excuse.

afavour 10 hours ago

I think OP’s point is that the payoff in learning a new language has diminished in this AI era. You can call that lazy, I’d consider it smart to consider whether you could be doing other, better, things with your time.

w4yai 9 hours ago

cmrdporcupine 8 hours ago

Sad to break it to you, but...

I had LLMs write a pile of cuda-rust code and they were quite competent at it. Ported a bunch of (C++) CUDA kernels over, and ground away on them til they got equivalent performance

https://github.com/rdaum/eider/tree/main/backends/cuda-oxide

And mostly just DeepSeek 4.1 Flash, too. Not even a frontier model.

Sorry.

IhateAI_6 6 hours ago

[flagged]

cmrdporcupine 2 hours ago

dakolli 6 hours ago

[dead]

Danox 6 hours ago

The recent circular moves that Nvidia is making is designed to wrap things around them, anything to keep the AI model party going.

bt1a 10 hours ago

Will it then be possible to query TJunc hotspot temps on linux?

jauntywundrkind 6 hours ago

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

nicebyte 10 hours ago

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 11 hours ago

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.

mococa 10 hours ago

AI slop article, how can I trust on this?

pjmlp 3 hours ago

The same way as people trust AI sloppy on their code.

shmerl 9 hours ago

Nvidia only? Typical.

This is more promising: https://github.com/Rust-GPU/rust-gpu/

anon291 6 hours ago

Once again... There's literally no point to a low level shader language for heterogenous back ends.

nonmaskable a day ago

[dead]

ReshamJoshi 21 hours ago

[dead]

westurner 9 hours ago

[dead]

mococa 10 hours ago

The world is unsafe

Xeoncross 9 hours ago

Rust just makes you sign a waiver first.

dunlin 8 hours ago

Rust for GPU programming? My CUDA debugging sessions just got a whole lot less painful, hopefully.

bcjdjsndon 21 minutes ago

There's a lot of unsafe code at that level... Rust probably makes it more painful for little gain

Driftbench 8 hours ago

Been waiting for something like this. CUDA C++ is a pain; Rust's safety for kernel programming could be a game changer.

nullbio 7 hours ago

Makes me sad that Go doesn't get love. I feel like Go is perfect for LLMs.

Blackarea 7 hours ago

Don't think we're gonna see garbage collections anywhere near gpu for many reasons.

pjmlp 3 hours ago

Go's type system is not at the same level as C++, Fortran, Python, Julia, Haskell, Java, to quote the languages with CUDA support from NVIDIA and their partners.

dakolli 6 hours ago

[dead]