I want to learn something about High Performance Computing as such and currently before me stands the topic of accelerated computing (like GPU computing).
I would like to ask you which technology is currently commonly used and therefore most worth learning. Technologies I know, that exist currently are:
CUDA - NVIDIA only
OpenCL - Should work well for any device, that can accelerate computing
- AMP - Microsoft technology (what is very discouraging), but has great API
- Vulkan - new library from Khronos, which is very complex, yet very good in performance
and that's it if it's about my knowledge about what is currently available.
Best would be if there exists some library like AMP, which could be fully open and available for linux also.
If not, then I even would be happy about CUDA, but I do not know if companies often use AMD GPUs, because if yes, then I would like to not waste time on learning something, what may become useless.
PS. both C and C++ APIs are fine for me
So what's your experience with this topic?