Rod Burns, Hugh Delaney, Aksel Alpay, R. Keryell, Igor Vorobtsov
{"title":"Tutorial: SYCL Techniques and Best Practices","authors":"Rod Burns, Hugh Delaney, Aksel Alpay, R. Keryell, Igor Vorobtsov","doi":"10.1145/3585341.3585373","DOIUrl":null,"url":null,"abstract":"The tutors involved in this tutorial have presented multiple times at IWOCL and SYCLcon and have helped to expand and develop the SYCL Academy open source learning materials. This tutorial brings a more advanced set of lessons. The SYCL programming model means heterogeneous programming using C++ is now more accessible than ever. SYCL uses modern standard C++, and it’s a programming model that lets developers support a wide variety of devices (CPUs, GPUs, FPGAs, and more) from a single code base. The growing popularity of this programming model means that developers are eager to understand how to use all the features of SYCL and how to achieve great performance for their code. Gain further expertise of SYCL in a practical environment focused more on writing code than Powerpoint with help from experts in the SYCL community. This tutorial assumes existing knowledge and some experience of using SYCL to develop code for accelerators such as GPUs. The concepts introduced to attendees will cover some of the topics that build on the fundamentals of SYCL including strategies for optimizing code, managing data flow, how to use different memory access patterns, understanding work group sizes, using vectorization, the importance of ND ranges, and making the most of the multiple devices available on your architecture. The majority of the tutorial consists of hands-on coding activities, these exercises have been tried and tested at previous conferences and are regularly updated to improve the learning experience. We anticipate significant improvements to these this year. Almost every short presentation is accompanied by a session where attendees will run through a coding exercise. The tutorial organizers will provide several ways to run through the code examples, either on the attendee’s own laptop where possible, but also in a cloud environment giving access to a hosted multi-GPU system. Attendees can choose to use multiple SYCL compilers and target different processors from multiple vendors. Tutors (confirmation of in person attendance is pending but at least 2-3 tutors will be present):","PeriodicalId":360830,"journal":{"name":"Proceedings of the 2023 International Workshop on OpenCL","volume":"9 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-04-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2023 International Workshop on OpenCL","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3585341.3585373","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
The tutors involved in this tutorial have presented multiple times at IWOCL and SYCLcon and have helped to expand and develop the SYCL Academy open source learning materials. This tutorial brings a more advanced set of lessons. The SYCL programming model means heterogeneous programming using C++ is now more accessible than ever. SYCL uses modern standard C++, and it’s a programming model that lets developers support a wide variety of devices (CPUs, GPUs, FPGAs, and more) from a single code base. The growing popularity of this programming model means that developers are eager to understand how to use all the features of SYCL and how to achieve great performance for their code. Gain further expertise of SYCL in a practical environment focused more on writing code than Powerpoint with help from experts in the SYCL community. This tutorial assumes existing knowledge and some experience of using SYCL to develop code for accelerators such as GPUs. The concepts introduced to attendees will cover some of the topics that build on the fundamentals of SYCL including strategies for optimizing code, managing data flow, how to use different memory access patterns, understanding work group sizes, using vectorization, the importance of ND ranges, and making the most of the multiple devices available on your architecture. The majority of the tutorial consists of hands-on coding activities, these exercises have been tried and tested at previous conferences and are regularly updated to improve the learning experience. We anticipate significant improvements to these this year. Almost every short presentation is accompanied by a session where attendees will run through a coding exercise. The tutorial organizers will provide several ways to run through the code examples, either on the attendee’s own laptop where possible, but also in a cloud environment giving access to a hosted multi-GPU system. Attendees can choose to use multiple SYCL compilers and target different processors from multiple vendors. Tutors (confirmation of in person attendance is pending but at least 2-3 tutors will be present):