[Openmp-dev] OpenMP 4.x Accelerator Offloading with OpenCL/SPIR

Daniel Schürmann via Openmp-dev openmp-dev at lists.llvm.org
Mon May 22 03:01:25 PDT 2017


Hello together,

I'm a computer science master student at TU Berlin and would like to 
implement an OpenCL/SPIR back-end for OpenMP Accelerator Offloading for 
my master thesis.

The motivation is to enable all OpenCL devices with support for the SPIR 
extension to be targeted by OpenMP accelerator offloading. Besides the 
simplicity of programming GPUs by annotating scalar C/C++ 
implementations, this approach would additionally make it easier for 
other programming languages or libraries to provide single-source GPGPU 
programming capabilities. One example is triSYCL, an open source 
implementation of the SYCL specification, whose goal is to provide a 
single-source programming model for OpenCL devices. The current 
implementation is based on OpenMP with execution on the CPU, while 
future development wants to make use of OpenMP accelerator offloading.

As far as I understand the following steps have to be taken:
Clang/LLVM is already compatible with the libomptarget RTL. For the 
OpenCL back-end, minor adjustments are necessary to emit SPIR code for 
OpenCL devices. I would appreciate if someone could pinpoint me the 
particular code section in Clang.
As libomptarget is device-independent, it only has to made aware of the 
new OpenCL target RTL.
For the target RTL, the specified interface has to be implemented.

I would be thankful for all kinds of corrections and support I can get.
Please tell me, if anyone is already working on this topic.

Thanks in advance,
Daniel


More information about the Openmp-dev mailing list