OpenCL is a beautiful standard, really well done by Khronos for coming up with such a wonderful API. The state of OpenCL is no good in the recent year, without mentioning the rise of Nvidia for Deep Learning. Yet, I somehow fell in love with OpenCL and how powerful it is. I do not know why people would leave a tool that works on every operation system, every platform, and focus on something that works on like 20% of what is available in our world (okay maybe it is like 30%).
Despite being low level, OpenCL is powerful. People complain about OpenCL being verbose, well it has to be verbose because we are talking about high performance computing and performance comes from tuning that verbosity. If the compiler would generate it for you then there would be no difference
Being able to write code that runs on CPU and GPU, is very satisfying. At least for me. However, tuning kernels is hard, if you do not know the hardware beforehand. While I am still working on OpenCL support in CGraph, I am actually impressed by Logical Model of OpenCL and how it actually maps into hardware by the vendors. I believe that the future for OpenCL is going to be brighter, just developers should be less lazy and attempt to learn for it is worth it. Like it or not, a GPU is a GPU and a CPU is a CPU. In these days, sequential optimizations are at probably at their best, and if we want to go even further, we have to be ready to learn new things and adapt them for our need.