1 | initial version |
CUDA and OpenCL are 2 completely different things . OpenCL is portable across multiple manufacturers/devices/embedded (GPU/FPGA/DSP), CUDA is specific to NVidia GPU. ... On my notebook, I can use OpenCL apps but not CUDA apps because I've amd/radeon GPU.
Performance is one of many aspects and often is less relevant than others like portability, embedding, power requirement, mission critical...
Because you are starting and your are interested to different scenario, maybe embedded, I would suggest to evaluate OpenVX ecosystem. OpenVX can encapsulate OpenCL, CUDA . It should offer best available performance on target host. OpenCV 3.2 now uses vendor-provided OpenVX.
Khronos's web site hold a lot documentation. These slides Khronos Vision Processing Update : Dec15 and Khronos-Embedded-Workshop_Nov16 can introduce you to the ecosystem.
have fun !