2015/06/04

SYCL is key idea for spread of OpenCL

(This is firstly posted on my LinkedIn.)
https://www.khronos.org/sycl

PDF download :  https://www.khronos.org/…/201…/SYCL-for-OpenCL-GDC-Mar14.pdf)

I couldn't attend to IWOCL 2015 but there was a noticeable agenda of release of SYCL 1.2. I am privately convinced that SYCL will be a key layer of OpenCL platform and let me explain why.
1. OpenCL shows powerful performance and good portability and OpenCL heavy users can write their algorithm in kernel source and this is surely right use of OpenCL. However, many typical application programmers are not familiar with stream programming for GPGPU. Programmers need easy and intuitive way to utilize heterogeneous computing.
2. Many OpenCL-based libraries are wrapping OpenCL platform. OpenCV, one of my interest, is about to release OpenCV 3.0 and its new Transparent API covers all kind of hardware usage such as typical code based on CPU, CUDA code and OpenCL C code with single API. It seems that wrapping OpenCL with higher abstract layer like C++ is a main issue.
https://docs.google.com/presentation/d/1qoa29N_B-s297-fp0-b3rBirvpzJQp8dCtllLQ4DVCY/present?slide=id.p14
Another example is ArrayFire which is open library providing accelerating code solution with OpenCL or CUDA.
http://arrayfire.com/why-arrayfire/

I am still not familiar with OpenCL C programming because I have not digged into parallel programming or GPGPU before. However, SYCL or OpenCV Transparent API helps me use GPU resources easily and this is a pretty good approach for many common programmers like me.
This is because many libraries or platforms will be based on OpenCL+SYCL for rapid spread of their own solution including both of performance boosting advantage and easy usage of GPU resources.