Intel Looking To Add SYCL Programming Support To LLVM/Clang


INTEL --

SYCL, the single-source programming model developed by the Khronos Group and based upon standard C++, might soon be supported by the LLVM Clang compiler thanks to Intel.

Intel compiler engineer Alexey Bader sent out a public “request for comments” today on the idea of adding SYCL to the LLVM Clang compiler stack. He wrote, “We (Intel) would like to request to add SYCL programming model support to LLVM/Clang project to facilitate collaboration on C++ single-source heterogeneous programming for accelerators like GPU, FPGA, DSP, etc. from different hardware and software vendors.

This would be yet another major contribution by Intel to the LLVM/Clang infrastructure ranging from their major OpenMP commits in the past to contributing their Parallel STL implementation to libc++ and much more over the years.

While the Intel developers are soliciting feedback, they already have patches prepared for Clang that would introduce basic SYCL programming model support and they will be sending those out soon for review.

Presumably this effort is part of Intel’s planned oneAPI initiative that they announced back in December at the Intel Architecture Day event. Intel is pursuing a uniform software stack/API that would work across processors, their existing integrated GPUs, FPGAs, future Xe dedicated graphics hardware, and other accelerators. With SYCL they would have a C++-based single-source format that is already engineered by multiple vendors, continues to expand in regards to tooling/documentation/support, and would align with their goals.

With SYCL in Clang it would ultimately be possible for compiling and just running on the host CPU or offloading to various devices with LLVM back-ends. Theoretically once the SPIR-V back-end is finally in place, there would also be the options of spitting out the SYCL code to SPIR-V for then consumption by OpenCL/Vulkan drivers. Among the LLVM back-ends to point out now are obviously NVIDIA NVPTX, the AMDGPU LLVM back-end that is central to the open-source Radeon driver stack, and there is also (the currently out-of-tree) Intel LLVM graphics compiler that would be needed in order to target their graphics hardware for compute, among other LLVM back-ends that could potentially benefit.

2019 is certainly looking to be an interesting year for Intel on both the hardware and open-source software fronts.