3 ms·
It's not an implementation of CUDA, it's an implementation of the CUDA runtime API. The API is used to configure the card, allocate and copy memory, and run ker
by fancyfredbot 3y ago
It's not an implementation of CUDA, it's an implementation of the CUDA runtime API. The API is used to configure the card, allocate and copy memory, and run kernels. Importantly you cannot use this to write the actual kernels which run on the GPU!
- sheepscreek 3y agoI was half hoping this meant running CUDA code on AMD GPUs. Thanks for clarifying.
- empyrrhicist 3y agoI know AMD has a whole bunch of (related?) projects for GPU compute, but man - if they could just provide an interop layer that Just Works they'd get immediate access to so much more market share.
- heyoni 3y agoThen they too could call themselves an AI company!
- empyrrhicist 3y agoI've been hoping for it for so long - I wonder if there's enough interest that someone could do a GoFundMe to hire at least one full time dev lol.
- sanxiyn 3y agoEh well, it is very close to just working. From "Training LLMs with AMD MI250 GPUs and MosaicML": > It all just works. No code changes were needed. https://www.mosaicml.com/blog/amd-mi250 https://www.mosaicml.com/blog/amd-mi250
- paulmd 3y ago“Just works” in this context means executing the compiled CUDA or the PTX bytecode without recompiling. Nobody is ever going to utilize ROCm if it requires distributing as source and recompiling. To make it even more insulting, even simply installing ROCm itself is a massive burden, even on an ostensibly-supported (as geohot discovered) and even just “it works out of the box if you distribute and compile it locally” is ignoring that whole massive “draw the rest of the owl” stage of getting ROCm installed and building properly in your environment.
- causality0 3y agoDon't forget AMD doesn't seem to even care about ROCm themselves. Six months in and RDNA3 cards still don't support it. Can you imagine if Nvidia launched RTX40- cards with no DLSS even though 30- cards already had it, and six months started boasting about how DLSS support was "coming this fall"?
- collsni 3y agoIt is coming from what I can tell
- meragrin_ 3y agoIt's been coming for years now. I will probably be years before it really is here.
- juunpp 3y agoThat's HIP / ROCm: https://rocm.docs.amd.com/projects/HIP/en/latest/index.html https://rocm.docs.amd.com/projects/HIP/en/latest/index.html But it currently only runs on CDNA boards and enterprise-y Linux distros (Ubuntu LTS, Centos, etc.)
- jdoerfert 3y agoShameless plug: https://www.osti.gov/servlets/purl/1892137 https://www.osti.gov/servlets/purl/1892137 TLDR; If you provide even more functions through the overloaded headers, incl. "hidden ones", e.g., `__cudaPushCallConfiguration`, you can use LLVM/Clang as a CUDA compiler and target AMD GPUs, the host, and soon GPUs of two other manufacturers.
- scienceplease 3y agoThis is really amazing work! Is it still ongoing/funded?
- jdoerfert 3y agoYes, though with caveats. The driver and parts of the extended API we used to lower CUDA calls are in upstream LLVM. The wrapper headers are not. We will continue the process of getting it all to work in upstream/vanilla LLVM soon though. Help is always appreciated. FWIW, we have some alternative ideas on how to get out of the vendor trap, as well as some existing prototypes to deal with things like CUBLAS and Thrust. Feel free to reach out, or just keep an eye out.
- causality0 3y agoVulkan doesn't exactly work great on AMD either. I'm in the process of returning a 7900XTX right now because of AMD's busted Vulkan drivers.
- RicoElectrico 3y agoSo what is this useful for, then?
- pjmlp 3y agoAdditionally, any wannabe CUDA replacement needs to support PTX and polyglot development, or is a non starter for lots of workloads.