3 ms·
That's a compiler problem. Once could start from clang -xcuda and hack onwards. Or work in the intersection of CUDA and HIP which is relatively broad if a bit o
by JonChesterfield 1y ago
That's a compiler problem. Once could start from clang -xcuda and hack onwards. Or work in the intersection of CUDA and HIP which is relatively broad if a bit of a porting nuisance.
- shmerl 1y agoMay be, but who is working on that compiler? And the whole ecosystem is controlled by a nasty company. You don't want to deal with that. Besides, I'd say Rust is a nicer language than CUDA dialects.
- JonChesterfield 1y agoChris and Nick originally, a few more of us these days. Spectral compute. We might have a nicer world if people had backed opencl instead of cuda but whatever. Likewise rust has a serious edge over c++. But to the compiler hacker, this is all obfuscated SSA form anyway, it's hard to get too emotional about the variations.
- shmerl 1y agoLanguage would matter more for those who actually would want to write some programs in it. So I'd say rust-gpu is something that should get more backing.
- pjmlp 1y agoUntil Rust gets into any of industry compute standards, being a nicer language alone doesn't help. Khronos standards, CUDA, ROCm, One API, Metal, none of them has Rust on their sights. World did not back OpenCL, because it was stuck on a primitive C99 text based tooling, without an ecosystem. Also Google decided to push their Renderscript C99 dialect instead, while Intel and AMD were busy delivering janky tools and broken drivers.
- shmerl 1y agoThat's simply not true, because standard level should operate on the IR level, not on the language. You have to generate some IR from your language, at that level it makes sense to talk about standards. The only exception is probably WebGPU where Apple pushed using a fixed language instead of IR which is was a limiting idea.
- pjmlp 1y agoNone of those standards are about IR. Also SPIR worked so great for OpenCL 2.x, that Khronos rebooted the whole mess back to OpenCL 1.x with OpenCL 3.0 rebranding.
- shmerl 1y agoThey are pretty much about IR when it comes to language interchange. SPIR-V is explicitly an IR that can be targeted from a lot of different languages.