FWIW, all my libraries work with both CUDA and OpenCL.
While I agree with your sentiment, unfortunately Nvidia is the only vendor that pays considerable number of people to develop the ecosystem. AMD basically says "get lost" by refusing to put more than a handful of people on the job of providing OpenCL libraries. And, BTW, they change their minds every few years. I hope that HIP won't be abandonware...
> unfortunately Nvidia is the only vendor that pays considerable number of people to develop the ecosystem. AMD basically says "get lost" by refusing to put more than a handful of people on the job of providing OpenCL libraries.
Vulkan itself is developed and supported well, and it already can be used for compute as far as I know. But apparently there are some features that come from the OpenCL world that need to be filled in. It wouldn't be AMD's exclusive effort. So hopefully things will start moving.
The language and basic platform is not a problem. OpenCL was and is OK. However, the libraries are far and between. CUDA offers cuBLAS, cuFFT, cuDNN, cuSolve, etc. For OpenCL, even the decent BLAS library (CLBlast) had to be written by a guy who did it for free, while AMD's clBLAS is more or less stalled (and I never managed to build it on Linux in the first place), and that's it...
The ability just to swap in the cuFFTW header for FFTW3's making calls execute on GPU (even though it doesn't give the best performance) is also nice for beginners.
Khronos is to blame by having OpenCL be a C only game, while CUDA was C, C++ and Fortran with PTX for anyone else that wanted to write a compiler fronted for CUDA.
It took them being beaten by NVidia to actually care to add SPIR and C++ support to OpenCL.
Even now, while CUDA brings C++ compiler out of the box with their SDK, for OpenCL one needs to go to Codeplay and download their ComputeCpp Community edition compiler for SYSCL support, that might or not, support a given card. Hardly any better.
While I agree with your sentiment, unfortunately Nvidia is the only vendor that pays considerable number of people to develop the ecosystem. AMD basically says "get lost" by refusing to put more than a handful of people on the job of providing OpenCL libraries. And, BTW, they change their minds every few years. I hope that HIP won't be abandonware...