Writing massively parallel code for heterogeneous platforms with OpenCL
In the previous recipe, we introduced CUDA, a proprietary GPGPU framework created by NVIDIA Corporation. In this recipe, we present OpenCL, an alternative open framework initiated by Apple in 2008. It is now adopted by mainstream companies including Intel, NVIDIA, AMD, Qualcomm, ARM, and others. These companies are regrouped within the non-profit technology consortium Khronos Group (which also maintains the OpenGL real-time rendering specification). Programs written in OpenCL can run on GPUs and CPUs (heterogeneous computing).
CUDA and OpenCL are relatively similar in terms of concepts, syntax, and features. CUDA sometimes leads to slightly higher performance, since its ...