Heterogeneous computing is becoming more popular with the lack of CPU performance increases, the exceptional rate of GPU performance growth, and the emergence of other programmable computing elements. However, programming heterogeneous systems is still problematic due to differing hardware, explicit data copying, and synchronization. The SYCL specification aims to simplify heterogeneous programming by building on top of OpenCL and employing modern C++. However, there is no open-source implementation of SYCL available, which presented an opportunity for us to develop one. We restricted ourselves to not modify any existing compilers or write new ones, but we managed to implement a large part of the SYCL specification by developing an OpenCL code generator that compiles SYCL code in a Just-In-Time manner. Our work was summarized in an article called "An Overview of sycl-gtx", which was presented at the PPoPP 2016 conference.
|