opencl vs CUDA - Tibalt/learn-cuda GitHub Wiki

I have gone through the below document and opencl is more complicated than CUDA for beginners. opencl whitepaper

CUDA is used in distinctive way which means basically there are 3 steps:

  • allocate memory(both host and device), move data from host to device
  • run kernel
  • move data from device to host

yes, there are some "new" concepts in

  • memory allocation("pinned" memory for example)
  • stream
  • event for profile

and so on.

For opencl, you need to get familar with lots of new data structure first.