SYCL is a programming model that targets a wide variety of devices (CPUs, GPUs, FPGAs and more) from a single code base. SYCL supports a single-source style of programming from completely standard C++. With increasingly heterogeneous processor roadmaps, a platform-independent model such as SYCL is essential for software developers.
In this tutorial, we introduce SYCL. We start by building a solid foundation to help programmers gain mastery of this language. We then explore how SYCL can be used to write serious applications, covering intermediate to advanced features as well as some of the tools and libraries that support SYCL application development. The tutorial is constructed around mini-applications that represent key design patterns encountered by people who program heterogeneous systems. This helps keep the tutorial grounded on practical knowledge students can immediately apply to their own programming problems.