Advanced SYCL* Concepts for Heterogeneous Computing
Subscribe Now
Stay in the know on all things CODE. Updates are delivered to your inbox.
Overview
Expand your SYCL* coding knowledge and skill with a two-hour session that covers:
- Pointer-based memory management using unified shared memory (USM)
- Handling data dependencies between running kernels
- The advantages of using subgroups and subgroup algorithms
- Using SYCL reduction to simplify reduction with parallel kernels
Develop high-performance, data-centric applications for CPUs, GPUs, and FPGAs with this core set of tools, libraries, and frameworks including LLVM*-based compilers.
Highlights
0:00 Introductions
1:38 SYCL 2020 features
2:37 Learning objectives
3:00 What is oneAPI Implementation of SYCL?
3:37 Extend the SYCL standard
3:51 C++ and SYCL extensions
4:07 Language simplification
5:55 USM
6:12 A developer view of USM
7:20 USM syntax
9:54 SYCL buffers method
10:53 Why use USM?
12:00 Types of USM
13:07 Example of a USM explicit data transfer
14:06 Example of a USM implicit data transfer
14:58 Create an Intel® Developer Cloud account for the hands-on lab
17:08 Step-by-step getting started
18:48 How to update your Intel Developer Cloud content
19:57 Welcome notebook
20:49 SYCL USM
30:14 When to use USM
31:50 Q&A
34:47 USM data dependency in Tasks
35:35 Example of data dependency
39:40 Hands-on example of data dependency
52:34 Where to find the solution file
54:55 USM summary slide
55:10 Subgroups
55:32 Maps to hardware
56:25 Why are subgroups important?
57:02 A high-level look at subgroups in ND_Ranges
57:29 Subgroup syntax
58:00 Example of a subgroup shuffle operation
59:08 Example of subgroup algorithms
59:55 Specify the subgroup size
1:00:55 SYCL subgroups
1:10:53 Reductions
1:12:10 Example of a simple reduction
1:13:02 Parallelizing reductions
1:13:25 Workgroup reduction
1:14:34 Simplified reduction
1:15:32 Multiple reductions in one kernel
1:16:16 Reductions
1:22:33 Summary
1:23:04 Q&A