🤖 AI Summary
This work addresses the lack of a unified programming model in heterogeneous computing, which hinders the co-optimization of code portability, development productivity, and performance. From a developer-centric perspective, the study establishes a systematic evaluation framework to rigorously analyze the performance trade-offs between SYCL’s memory management models—Unified Shared Memory (USM) versus buffer-accessor—and its parallel execution abstractions—NDRange kernels versus hierarchical kernels—in cross-platform development scenarios. Leveraging multiple compiler implementations and empirical measurements on Intel hardware, the paper uncovers critical limitations in the current SYCL standard concerning behavioral consistency and performance portability. These findings provide empirical evidence to guide future evolution of the SYCL specification and inform optimizations in heterogeneous programming frameworks.
📝 Abstract
High-performance computing (HPC) applications are increasingly executed in heterogeneous environments, introducing new challenges for programming and software portability. SYCL has emerged as a leading model designed to simplify heterogeneous programming and make it more accessible to developers. Intended as a single-source, cross-platform parallel programming framework, SYCL promises portability, productivity, and performance across a variety of architectures. However, these goals have not been consistently defined or realized, leaving developers with varying expectations. This paper addresses this gap by evaluating SYCL from the perspective of application developers. We analyze whether SYCL meets essential criteria for cross-platform development, including code portability, development productivity, and runtime efficiency. Our evaluation draws on benchmarks and illustrative examples and focuses on SYCL's memory management and parallelism abstractions. We provide detailed comparisons between Unified Shared Memory (USM) and buffer-accessor approaches, as well as between NDRange and hierarchical kernel models. In addition to presenting our own benchmark results on Intel platforms, we synthesize findings from recent studies across multiple SYCL implementations and compilers. Our results expose key limitations and inconsistencies in current SYCL implementations and offer insights into the steps needed to improve the framework's reliability and cross-platform usability.