Workshop:LLVM-HPC2021: The Seventh Workshop on the LLVM Compiler Infrastructure in HPC
Authors: Alexey Bader and Alexey Sachkov (Intel Corporation)
Abstract: With 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.