I suspect most people writing OpenCL code have become quite used to OpenCL 1.1 and 1.2 by now. Most of the core features remained the same in the transition from 1.1 to 1.2 with mainly tweaks round the edges rather than any significant changes. OpenCL 2.0, however, has added a bag of new tricks and features to make OpenCL programming more powerful and, in some cases, more straight forward.
Unfortunately, despite Khronos announcing the OpenCL 2.0 specification over a year ago, it is not until recently anyone has been able to try it out due to the lack of drivers. Thankfully, AMD and Intel have now both released drivers albeit in a Beta and Developer form, respectively. Time to try out some OpenCL 2.0 features!
First step is to grab some drivers:
I’ve not tried these drivers out yet so am not sure what they contain. I get the impression that the AMD drivers are currently only for their GPU devices with no CPU OpenCL device support for OpenCL 2.0. Likewise, Intel talk about their CPUs with little mention of GPU support.
Second step is to read some tutorials. AMD have started a nice series with example source code which are well worth reading:
- Shared Virtual Memory
- Device Enqueue and Workgroup Built-in Functions
- Generic Address Space and Program-Scope Variables
- Image Enhancements
- Fine-Grain Shared Virtual Memory
I believe more articles are to come so the AMD blog is worth keeping an eye on.
Third step is to swot up on the OpenCL 2.0 specification and to get an in depth look at all the new features.
Fourth step is to start playing around with OpenCL 2.0 in your own applications 🙂 This is something I’m looking forward to doing over the next few weeks and I think it’ll be fun.