Sylkan: Towards a Vulkan Compute Target Platform for SYCL
University of Innsbruck, Innsbruck, Austria
International Workshop on OpenCL (IWOCL’21), 2021
@inproceedings{thoman2021sylkan,
title={Sylkan: Towards a Vulkan Compute Target Platform for SYCL},
author={Thoman, Peter and Gogl, Daniel and Fahringer, Thomas},
booktitle={International Workshop on OpenCL},
pages={1–12},
year={2021}
}
SYCL is a modern high-level C++ programming interface which excels at expressing data parallelism for heterogeneous hardware platforms in a programmer-friendly way, and is standardized by the Khronos Group. The latest version of the standard, SYCL 2020, removes the previous dependence of the specification and its implementations on an underlying OpenCL target, opening the door for compliant alternative implementations. In this paper, we discuss the opportunities and challenges of mapping SYCL to Vulkan, a low-level explicit programming model for GPUs. This includes an analysis of the potential semantic mismatch between each respective standard, as well as approaches to work around some of these issues. Additionally, we present a prototype research implementation of Sylkan, a SYCL compiler and runtime targeting Vulkan. In order to evaluate our prototype qualitatively and quantitatively, we chose a variety of functional tests as well as three performance benchmarks. For the functional tests, we discuss and categorize the failures of the current prototype, noting which semantic mismatch or missing implementation causes them. For the performance benchmarks, we compare execution times against a OpenCL-based SYCL implementation and a native Vulkan version of each benchmark, on two hardware platforms.
May 9, 2021 by hgpu