SYCL Summer Sessions 2020

31st August to 4th September

A week long series of online presentations on a variety of topics to help you with your SYCL code.

Monday 31st August

SYCL Performance and Portability

Presenter: Kumudha Narasimhan, Codeplay Software

Over recent years heterogeneous systems have become more popular across HPC systems, with over 100 supercomputers in the TOP500 incorporating GPUs or other accelerators. Such platforms have different performance characteristics and optimization requirements.

In order to make the most of various accelerators, a programming model is required to support portability without losing performance. During this presentation, we will examine some of these projects. Show how these libraries can be used to offer portability and performance, and how these libraries can be used to accelerate complex HPC applications. Codeplay Software will discuss some of the available papers detailing the implementation, performance, and programmability of these libraries and frameworks.

Tuesday 1st September

SYCL Programming on Multi-GPU Systems

Presenter: Jeff Hammond, Intel

I will talk about programming systems with multiple accelerators using SYCL and demonstrate some techniques for simplifying data parallel computation across multiple devices using SYCL 2020 unified memory.

Wednesday 2nd September

A Comparison of Programming Models with SYCL

Presenter: Tom Deakin, University of Bristol

In the Exascale era, high-performance scientific codes will be required to run on both homogeneous and heterogeneous systems made from hardware by different vendors. The supercomputers are constructed from CPUs with lots of cores, and in many cases with multiple GPU accelerators. Having a parallel programming model to support all these systems is key to having a code that is flexible and performance portable. In this talk, I’ll show the similarities and differences of implementing some simple typical computational patterns in three heterogeneous parallel programming models: OpenCL, OpenMP and SYCL. I’ll show performance results for each on a range of hardware from different vendors, focussing on performance portability.

Thursday 3rd September

Lessons Learned Developing Frameworks with SYCL

Presenter: Jan Stephan, HZDR

alpaka is a header-only C++ library for developing portable high-performance programs. Much like SYCL, it aims to abstract away the differences between accelerator types and vendors. In 2019 an experimental SYCL backend was developed in order to target FPGAs. In my talk I will focus on the challenges I faced during the SYCL backend development as well as conceptual differences between SYCL and other heterogeneous programming platforms.

Friday 4th September

SYCL Programmer’s Toolbox: Tips & Tricks for Effective Application Development

Presenter: Philip Salzmann, University of Innsbruck

To many, programming highly parallel architectures still seems like a daunting task, as low-level APIs and limited tooling support have historically resulted in a developer experience that leaves much to be desired. However, great strides have been made in recent years, with modern programming models such as SYCL alleviating most of these pains. In particular, SYCL developers may benefit from its modern API design, flexible execution model as well as robust tooling support for underlying hardware platforms – if they know how to take advantage of it. This talk, aimed at beginners and intermediate SYCL users, will take a look at a variety of useful tips, tricks and techniques that may come in handy during SYCL application development.