News for hackers. Stuff that matters.

wingertge

I hate doing self-promotion, but this is basically exactly what CubeCL does. CubeCL is a bit more limited because as a proc macro we can't see any real type info, but it's the closest thing I'm aware of. Other solutions need a bunch of boilerplate and custom (nightly-only) compiler backends.
Re:CubeCL: GPU Kernels in Rust for CUDA, ROCm, and WGPU on Thursday April 24, 2025 @03:41PM (#43786679)
From what I can tell it's not accurate enough to catch a lot of errors in the real world. Maybe an illegal instruction, but not a race condition from a missing sync or a warp divergence on a uniform instruction or other potential issues like that.
Re:CubeCL: GPU Kernels in Rust for CUDA, ROCm, and WGPU on Thursday April 24, 2025 @09:18AM (#43782366)
There's infrastructure in the SPIR-V compiler to be able to target both OpenCL and Vulkan, but we don't currently use it because OpenCL would require a new runtime, while Vulkan can simply use the existing wgpu runtime and pass raw SPIR-V shaders.

One thing I've never investigated is how performance OpenCL actually is for CPU. Do you happen to have any resources comparing it to a more native CPU implementation?

Re:CubeCL: GPU Kernels in Rust for CUDA, ROCm, and WGPU on Thursday April 24, 2025 @08:45AM (#43782052)
We don't yet support newer types like fp8 and fp4, that's actually my next project. I'm the only contributor with the hardware to actually use the new types, so it's a bit bottlenecked on a single person right now. But yes, the example is rather simplistic, should probably work on that some time once I'm done updating the feature set to Blackwell.