3 ms·
A word of warning: OpenCL, and heterogeneous computing in general, is very very difficult. It will take a lot of effort to get even the simplest hello world app
by exDM69 13y ago
A word of warning: OpenCL, and heterogeneous computing in general, is very very difficult. It will take a lot of effort to get even the simplest hello world application working.
And when writing OpenCL, even you are using a single API to write code, if you want to get high performance you will need to rewrite parts of your application for each hardware you intend to run on if you want good performance. This is obvious since the code may end up running on Intel x86's or Intel, AMD or Nvidia GPU architectures which are all very different. If you're lucky, it's enough to rewrite your kernel code (the code running on the device). But you might also need changes to the host side code (running on the cpu) and make changes to the way you manage the memory and DMA transfers, etc.
Finally, when it comes to the basics, OpenCL is not too different from CUDA and there's a lot more material available on CUDA (because it's been around longer and is perhaps used a bit more). You should be able to pick up a book or a tutorial on CUDA and translate it to OpenCL without too much effort.
Finally, even though it may take quite a lot of learning to get started, parallel programming on GPUs is quite fun and it is very rewarding to see your code run with very high performance.