Implementation of SYCL™ Specialization Constants for Intel GPUs
Event Type
Workshop
Parallel Programming Systems
W
TimeSunday, 14 November 20212:11pm - 2:18pm CST
Location226
DescriptionWith the emergence of new hardware architectures in HPC systems, we observe raised demand in software solutions allowing developers efficiently use system’s resources. SYCL programming model [1] for heterogenous systems provides specialization constants - runtime variables, which are invariant under the code execution on the target device. This property enables just-in-time (JIT) compiler optimizations for heterogenous targets like using optimal tile size in a tiled matrix multiplication kernel depending on the hardware used for execution.
This paper describes the challenges and solution to implement SYCL specialization constants in oneAPI Data Parallel C++ (DPC++) compiler [2]. We demonstrate how open specifications and open-source tools like SPIR-V™ specification [3] and SPIRV-LLVM translator [4] from Khronos® group are leveraged in our implementation.
We provide performance data measured for a generic convolution expression implementation example and the version using specialization constants for filter coefficients to highlight the performance benefits of JIT compilation.
This paper describes the challenges and solution to implement SYCL specialization constants in oneAPI Data Parallel C++ (DPC++) compiler [2]. We demonstrate how open specifications and open-source tools like SPIR-V™ specification [3] and SPIRV-LLVM translator [4] from Khronos® group are leveraged in our implementation.
We provide performance data measured for a generic convolution expression implementation example and the version using specialization constants for filter coefficients to highlight the performance benefits of JIT compilation.