2 ms·
CUDA is neither an API, nor a language, it is an ecosystem.
by pjmlp 10d ago
CUDA is neither an API, nor a language, it is an ecosystem.
- fc417fc802 10d agoThat's a nice way of saying that it's a dependency clusterfuck. I've never understood why we can't just expose the GPU ISA directly the way the CPU does. It's all getting compiled down at the end of the day so someone has to write a compiler for it either way. We'd be substantially better off IMO if it was all built directly into LLVM and then let middleware sort out the details.
- pjmlp 10d agoBecause even CPUs rather use JIT runtimes to deal with the various kinds of ISAs that exist. Naturally plenty of folks rather use software that doesn't take advantage of the hardware they paid for.
- imtringued 10d agoThat would require vendors to either stick with a single backwards compatible ISA like intel did for x86 or document how their graphics cards work. CPUs manage this by changing the internal micro-architecture, but historically GPUs only needed to support a graphics API and used that abstraction layer to freely change the hardware.
- dev_hugepages 10d agoIf i'm not mistaken, this already exists, and the assembly language here is called PTX https://llvm.org/docs/NVPTXUsage.html https://llvm.org/docs/NVPTXUsage.html
- pjmlp 10d agoPTX is a bytecode format, the CUDA driver JIT compiles it when uploading into the cards.
- fc417fc802 10d agoCan't the same also be said of much of the x86 vocabulary at this point? I appreciate that we can upload SPIR-V directly. The API still feels overly obtuse but it's not so bad. SYCL gets close but is language specific.
- deleted 10d ago[deleted]