Euro-Par 2023 | Tutorial | International European Conference on Parallel and Distributed Computing TutorialEuro-par

Tutorial: An Introduction to SYCL and the Celerity and SYnergy Extensions.

Tutorial: An Introduction to SYCL and the Celerity and SYnergy Extensions.

Abstract:

SYCL is a single-source, high-level, standard C++ programming model that can target a wide range of heterogeneous platforms equipped with CPUs, GPUs, FPGAs and more. The main advantage of using SYCL over other heterogeneous programming models is the single programming language approach, which allows you to target multiple devices with the same model, resulting in a cleaner, more portable and more readable code base. In addition, with the growing interest in heterogeneous hardware, moving to an open standard, platform-independent model such as SYCL is essential for today's software developers.

This tutorial provides an introduction to the SYCL programming model and the key language semantics, using a by-example approach. All major semantics of SYCL 2020 will be presented, including subgroups, kernel reductions, unified shared memory, task scheduling and data dependency. The second part of the tutorial presents two examples of SYCL-based frameworks that extend the SYCL semantics to provide additional functionality to the program. The first one is Celerity, which extends SYCL semantics such as the accessor to execute SYCL code on a distributed cluster of accelerators. The second one is SYnergy, which implements an energy-aware queue to enable energy-efficient techniques such as frequency scaling.

Attendees will be able to test the code presented during the tutorial on online compilers, so that they will leave the tutorial with an understanding of how to write SYCL programs, use advanced features, and understand the guidelines that enable performance portability across different platforms and architectures. Additional web-based resources are provided for follow-up studies.

Bio:

Biagio Cosenza is a tenure-track Assistant Professor in the Department of Computer Science at the University of Salerno, Italy, and a member of the Khronos SYCL Working Group. He joined the University of Salerno in August 2019 through a national brain gain program (Attraction and International Mobility), and received the Abilitazione for Italian Associate Professorship. From 2015 to 2019, he was Senior Research at the TU Berlin, Germany, where he was Principal Investigator for the DFG project Celerity and received the Habilitation from the Faculty IV. From 2011 to 2015, he was Postdoctoral researcher at the University of Innsbruck, Austria, where he contributed to the Insieme Compiler project and the DK-Plus multidisciplinary platform for Scientific Computing. His research is currently funded by the European HPC Joint Undertaking (LIGATE project), the Italian Ministry of Research (LibreRT project, PRIN 2022), and several industrial projects. Cosenza’s main research interests are in the field of high performance computing, in particular with respect to programming models, compiler technology, optimization and tuning.