[1] https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP
The difference is in the scaffolding (CUDA is easier but less flexible), and pre-existing libraries on offer.
If you're going to be writing the kernels yourself then it is easy to maintain both versions and it if it is for learning it doesn't matter at all (but I prefer the standard that works on all my machines).
Well, OpenCL 2.1 does do some C++ (not as much as CuDA with Pascal), but isn't widely available anyway.
If you were referring to the kernel language (a restricted subset of C99), I don't find that to be a disadvantage in practice. While CUDA supports a fairly useful subset of C++ (most notably, templates), I still find host-side metaprogramming to generate kernel code to be a much more useful approach in most cases. Of course your preferences may vary, but I haven't seen many experienced GPGPU people express dissatisfaction with this point.
I have no idea about the other languages but surely other bindings must exist?
> I have no idea about the other languages but surely other bindings must exist?
Yeah, the usual poor man's solution of generating C code, thus introducing two compilation steps, without any debugger support.
I always wanted to try it, but on the flip side the fact that AMD was starting their own project to do the same thing doesn't fill me with confidence that GPU Ocelot is worth my time.