3 ms·
So its not the hw, but an API issue? Is it not possible to port the tools to the AMD API? Or does the AMD API not allow to properly utilize the compute power of
by mjan22640 3y ago
So its not the hw, but an API issue? Is it not possible to port the tools to the AMD API? Or does the AMD API not allow to properly utilize the compute power of the hw?
- ekianjo 3y agoNo CUDA is heavily integrated with how Nvidia hardware operates
- dagw 3y agoAMDs APIs have historically been way behind CUDA, both in features and ease of use, making it much harder to reach feature and performance parity with CUDA. The second big problem is that AMD has a history of abandoning APIs. While Nvidia has been focusing on CUDA from the start, AMD is on its third or fourth API. A lot of developers got burned early on by putting in a lot of effort into supporting AMD cards, only to have their work become useless as AMD dropped old API. So if you wanted to support AMD today you have to choose between using their latest API which is currently only supported on a handful of their latest top end cards, or using their previous API, which is much worse and may or may not be supported in 2 years time.
- slavik81 3y ago> their latest API [...] is currently only supported on a handful of their latest top end cards While there's very few cards that are officially supported, I've enabled most RDNA 1 and RDNA 2 GPUs in the OS-provided packages on Debian Unstable and Ubuntu 23.10. I haven't tested every architecture, but my experience has been that they generally work quite well. The version of HIP packaged for Debian is still a few versions behind, so we haven't been able to enable RDNA 3 yet, but it shouldn't be too long before that is resolved. As you have described, it has been a very long road to get to this point (with a lot of mistakes along the way), but I think things are getting better. That said, I work on ROCm, so my evaluation may be unintentionally biased.
- dagw 3y agoI think things are getting better Hopefully. Although I haven't programmed with it yet, the latest ROCm looks nice (at least from reading the docs). Now all you have to do is actually get to a point where it's actually supported on hardware people actually own and convince people that it's worth investing their time in, and then AMD can start making progress.
- slavik81 3y agoThe Debian packages support a much wider range of hardware than the AMD packages do. Just about any discrete AMD GPU hardware released in the past five years should already work or will work soon.
- mananaysiempre 3y agoCUDA is proprietary to Nvidia, and it’s unlikely they would ever allow implementing it on other vendors’ hardware. DirectML mentioned here is proprietary to Microsoft but at least hardware-neutral. It is also much less popular. OpenCL is open but receives hardly any usage at all, unfortunately. (To be fair, Nvidia were at the forefront of this GPGPU thing since before there were dedicated APIs for it, so they certainly deserve some credit, but at this point they seem in desperate need for someone to finally knock them down.)
- Karliss 3y agoNvidia has provided the same API incrementally extending it since 2007. And supported it on most of their GPUS including consumer cards. Oldest cards supported by the latest version of their SDK were made in ~2013-2016. See table in https://en.wikipedia.org/wiki/CUDA#GPUs_supported https://en.wikipedia.org/wiki/CUDA#GPUs_supported AMD has been a lot less consistent with their support changing their mind almost every 3 years. ROCm was initially released in 2016 (that's 9 years of headstart for NVIDIA). If you look at https://docs.amd.com/en/latest/release/gpu_os_support.html https://docs.amd.com/en/latest/release/gpu_os_support.html on Linux only the enterprise server cards are supported. Situation slightly different on windows https://docs.amd.com/en/latest/release/windows_support.html https://docs.amd.com/en/latest/release/windows_support.html where they support last 2 generations of consumer cards (partially). I remember there were also a few years with even more bizarre situation where they supported GPUs that are couple of generations old but not their latest cards. Not hard to see how developers are hesitant to spend time adding support for AMD if large portion of AMD users won't be able to use it and there is a high chance that after few years AMD will change their mind again coming out with new API or dropping support for cards that are only couple of years old.
- whywhywhywhy 3y agoCUDA has over a decade of tooling and talent built up while AMD/Apple fumbled with the far more awkward to develop with OpenCL that they eventually killed. This disparity is due to that fumble.