NVlabs' cuda-oxide: Rust for GPU Kernels
ToolingComments
Exactly. We are discussing the memory wall. Even with a perfect type system, the Von Neumann bottleneck remains the primary constraint in SIMT architectures, meaning safety gains will not fix hardware latency issues.
But wait... if it is compiling to PTX, isn't that still an intermediate representation? Does that mean we are just trading the C++ compiler's optimizations for the PTX optimizer's... I wonder how that actually shakes out in the final binary.
It might help to look at how other LLVM-based tools handle PTX. Since Rust uses LLVM, there is a good chance it can leverage existing backend optimizations that make the translation very efficient.
the bottleneck is usually memory bandwidth, not the instruction set.
This sounds fine for the people writing the tools, but what about the ones maintaining them? Is there a way to debug these Rust kernels using standard NVIDIA tools, or are we stuck with a new set of debuggers?
What if the bottleneck isn't the language safety, but the lack of mature ecosystem libraries for Rust GPU kernels? In a scenario where we have a decade of highly tuned CUDA C++ libraries, a safer language might be a secondary concern compared to the productivity loss of rewriting everything.
Why do we assume rewriting is a bad thing? The productivity loss is just an excuse for staying with legacy code that crashes every other hour. Isn't a temporary dip in speed worth a permanent increase in stability?