4 ms·
A great report, which concludes with “everything we described here only supports CUDA backend for now, but it will change at some indeterminate point in the fut
by atemerev 4y ago
A great report, which concludes with “everything we described here only supports CUDA backend for now, but it will change at some indeterminate point in the future”.
And there’s a reason for that. OpenCL and particularly ROCm are much lower level and much less immediately usable compared to CUDA. AMD now has HIP, but HIP is “something that is almost CUDA-compatible, with no real improvements”, instead of actually doing something new and better. CUDA is an old API, and certainly has its rough edges, but I wonder why nobody has managed to do something genuinely _better_ in all these years.
ROCm is so low-level and pedantic it is nearly unusable. A simple implementation of FFT takes about 150 lines of C++/CUDA and about 2000 lines in ROCm — so no, no competition at all.
- pjmlp 4y agoOne of the best CUDA decisions was to go polyglot, and in that context, first class support for Fortran. The competition is still like "Fortran what??!" every time I happen to watch a Khronos or AMD talk on compute.
- washadjeffmad 4y agoI remember people saying the same of the Mantle/Vulkan API when compared to DirectX. Now it powers gaming on Linux and the Steam Deck, and now even Intel uses DXVK in their new Arc drivers. ROCm is a framework, and its existence likely has a bigger impact on the quality of CUDA and the good behavior of Jensen than we realize.
- pjmlp 4y agoWhile being mostly ignored everywhere else. Enjoy your 2% market share.
- Hizonner 4y agoI know essentially nothing about any of these tools, but I get the impression that the report is arguing that the API for ML is really up at the Python layer, and ML programmers don't interact directly with the stuff you're talking about. If the new PyTorch funnels everything through abstractions that don't require you to implement as many primitives to port it onto a new backend, then it matters less than before if ROCm (or whatever...) is harder to use, because the person doing the port don't have to do as much with it, and the actual application programmer never sees it at all.
- fisf 4y agoYes, but the assumption that python abstracts from this, and that ML programmers don't interact with cuda is wrong.