OpenCL C++

Benedict R. Gaster and Lee Howes

To appear in the Proceedings of the 6th Annual Workshop on General Purpose Processing with Graphics Processing Units (GPGPU 6). March 2013.


In this paper we introduce OpenCL C++, an object-oriented programming model (based on C++11) for heterogeneous computing and an alternative for developers targeting OpenCL enabled devices. We show that OpenCL C’s address space qualifiers, and by implication Embedded C’s, can be lifted into C++’s type system. A novel application of C++11’s new type inference features (auto/decltype) with respect to address space qualifiers allows natural and generic use of the this pointer.

We qualitatively show that OpenCL C++ is a simpler and a more expressive development platform than its OpenCL C counter part.