Evaluating OpenCL 2.0: Exploring new features, analysis, and benchmarking

Although languages like C++ provide mechanisms to build parallel software that run on a CPU or an Intel Phi, they lack support for GPUs or other hardware accelerators. These languages are not attractive options for programming heterogeneous systems. OpenCL was the response of a consortium of software and hardware vendors to address this issue. OpenCL 2.0 is a more mature specification of the language. This specification represents a significant evolution, letting developers to take advantages of heterogeneous systems in a more simplified way. Among the new features of the language, shared virtual memory, dynamic (or nested) parallelism, generic address space or C++-like atomics are available. This bachelor thesis goal is to explore, evaluate and contrast these features regarding OpenCL 1.2.

Number of students 1
Supervisor Juan J. Durillo
Tasks
  • Study new features of OpenCL2.0
  • Implementation of representative computations in OpenCL2.0
  • Comparison with OpenCL1
Practical Skills C, C++