I wouldn't call AMD a champion of OpenCL. Only OpenCL 2.0 is supported, and not completely on ROCm yet. OpenCL 2.0 isn't too hot on the AMDGPU-pro drivers either, and SPIR-V intermediate language doesn't really work well on AMD's GPUs (it either runs slowly or fails to run).
Frankly, it seems like AMD is going to be more successful with HCC and its HIP (CUDA-compatibility layer). It plays a distant 2nd place vs NVidia, but the CUDA-like single source environment is a superior development platform.
--------
OpenCL 2.2 seems to be only supported on Intel platforms. Either Intel GPUs, Intel CPUs (to AVX512), or Intel Altera FPGAs.
If I were to write OpenCL for AMD GPUs, I'd stick with OpenCL1.2 unless there was an absolute need for OpenCL 2.0 features. The OpenCL 1.2 stuff just seems more mature and better tested on AMD GPU Platforms. Hopefully ROCm changes that, but that's my opinion for the current state of affairs.
https://en.wikipedia.org/wiki/OpenCL
"When releasing OpenCL version 2.2, the Khronos Group announced that OpenCL would be merging into Vulkan in the future."
I guess CUDA is a more save and stable bet for the near term future if you need to choose between the alternatives...
Comments on this matter from the Khronos president:
> Khronos has talked about the convergence between OpenCL and Vulkan - a little clumsily as it turns out - as the message has been often misunderstood - our bad. To clarify:
> a. OpenCL is not going away or being absorbed into Vulkan - OpenCL Next development is active
> b. In parallel with a. - it is good for developer choice if Vulkan also grows its compute capabilities
> c. OpenCL can help b. through projects like clspv that test and push the bounds of what OpenCL kernels can be run effectively over a Vulkan run-time - and maybe inspire Vulkan compute capabilities to be expanded.