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.
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.
I do find it a little amusing, because commenters stopped criticizing my cursing the moment I started getting a good chunk of karma here. I remember in 2016 someone criticized me for using the term "shitposting"...I don't think I've gotten that kind of criticism since 2016 though.
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".
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.
From: https://docs.nvidia.com/cuda/cuda-programming-guide/01-intro...
Isn't that how CUDA code is normally written?
The disadvantages of writing them together are listed in the various parent posts. But some code authors really like the convenience of having the two in the same file.
And the Mojo standard library has been open source for over a year.
It’s all open source. Go check it out!
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.
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.
Seems more ergonomic in general though, both approaches they share, compared to cudarc, and less build infrastructure and fiddling with environments, which is great.
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.
This is more promising: https://github.com/Rust-GPU/rust-gpu/
Damn even Nvidia is putting out fully Claude-written articles.
Why "even Nvidia"?
They are fully behind using AI for basically everything.
What's next? "Damn, even McDonald's is putting out unhealthy food"
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.
They are just better at hiding it or configuring Claude.
I have several skills that reformat text to remove AI-speak tells.
I put the "humanized" output through Pangram and it still comes out as 100% AI generated.
But still, this is all very strange because it wasn't that many generations of AI models ago that AI writing was a lot better - I'm talking GPT 4.1, Claude 4.5, that sort of era.
Anthropic newsroom posts on the other hand are carefully constructed and well-written in a way that I have not seen demonstrated by LLMs yet, past or present. I expect that they have well-paid staff who are careful with every detail of their public communications. When you put it that way, it almost feels unfathomable that they wouldn't, doesn't it?
We are still much better at writing in a way that doesn't waste other people's time.
The heck you talking about? How do you think we wrote software for the last 50 years?
And now with AI I’m using it to fact check Claude. And still reading it for myself to understand why other peoples code is written a certain way. It’s basically the most important thing to reference when coding.
Sure today Claude can just read the library code and tell you what a function does or how to do something. But it still won’t tell you why something is a certain way or won’t figure out specifically-designed usage patterns as reliably as the author telling you “this is an example of doing x”
I brushed up on the docs since I haven't touched it in a couple years, explained my understanding of the ob_* functions, and gave him a very brief demo on a PHP playground.
He could have asked any LLM to tell him what that chunk of code did, and to explain the three functions, and instead he reached out to me. That felt _good_. Talking shop has always been a good way for me to form connections, because the pressure to socialize becomes task-oriented and you start to learn about how people think and feel, and that opens up easier paths for actual connection. It was nice.
Just like the Old Internet still exists - niche websites, mailing lists, probably a BBS or two (likely more right?), the pre-LLM world will trudge on, for a time. I hope LLMs actually lead to good things for people in the long run, and for now I personally will remain sparse in my usage of them.
I start with reading and exploring documentation first; with the codebase as a secondary tab.
When it’s not LLM generated, documentation is supposed to be easier to read and more insightful than code.
- "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".