The problem is that as far as I can see, OpenCL is in no way that. Basically, OpenCL gives me the impression that the oceans of boiler plate required both make development hard and effectively locks you into a specific vendor also since the boiler-plate is going to be setting things up for one's specific vendor.
OpenCL falls down in terms of standard libraries such as cu{dnn,sparse,blas} but if you're writing everything from scratch it's fine.
I can see simple, comprehensible 20-50 sample code for cuda that does most simple tasks. With OpenCL, I get references to version, boiler-plate, mode with nothing that boils down to simple code.
If you have a simple sample, you should post it here or blog about it.
Later, it's straightforward to port to c or c++ if that's your thing, though I find having numpy et al handy even in production code
Whereas CUDA supported C++ and Fortran from day 1, with the PTX support added a few versions later.
Also the debugging tools, from the presentations I have seen, are much more developer friendly on CUDA.
Of course developers rather use APIs that offer more modern experiences than ones still stuck in pure C, with a compiler at the driver level, forcing each programmer to writer the boilerplate to compile and link.
Now it might already be too late for OpenCL in spite of the latest improvements.
In that context, x86 compatibility is less of an issue than the quality of the compilers. As long as you are easier to program than a GPU, you are good.
Thankfully this sort of situation is becoming less common over time, but we're not all the way done yet.