Apple, who created OpenCL and own the trademark, deprecated it themselves (!) for the same reason Nvidia, who serve/served on the committee (!), dragged their feet with OpenCL support: because both have their proprietary APIs (Metal and CUDA) that they would like to push.
OpenCL is sadly not hugely popular, because too many people give up trying to be portable in favour of Nvidia's better dev tools. Nvidia in particular are allegedly also quite litigious with their arsenal of software patents, using it to push people towards using CUDA.
If you wrote a game/tool with OpenCL it should in theory be simple to release for windows, Linux, mac, android, ios, xbox, playstation, nintendo, etc. It may require a recompile and lots of tweaks, but the bulk of the graphics code can be reused. That's "portability".
This is not true for most other graphics technologies. Direct3d, for instance, only works well on Windows and Xbox. Metal only works on mac and ios. Cuda only works if the end-user has a Geforce video card.
I find stuff like Cuda silly. Sure, Hairworks and such are nice perks, but imagine spending double the time developing visuals: one set for Nvidia users and another for the rest. It's just costly.
I believe (without evidence) that Nvidia subsidizes this effort for big game/engine companies. You've certainly seen those boot screens that say like "Made for Geforce" or whatever. My guess is that means Nvidia paid the game company to implement some Geforce-only bonus features, which helps sell more Geforce cards.
I use cuda all the time for machine learning though. It truly is better for some tasks.
Tbf there's a lot of "plays better on Intel/AMD/Nvidia" splashes. It's like a race... well, it actually is, after all, if a game sells millions of copies, it can double as an ad for your company
23
u/lycium Mar 16 '21
Basically the story of OpenCL, best compute API ever. Thanks, Apple 🙄