SYCL* Essentials: Code with Intel® oneAPI DPC++ Library APIs
This two-hour workshop focuses on specific techniques to gain maximum optimization when programming with the Intel® oneAPI DPC++ Library (oneDPL). Based on familiar standards, the APIs for oneDPL components include the C++ Standard Template Library (STL), the Parallel API, and an API for SYCL* kernels. These APIs help maximize productivity and performance across a wide range of accelerators and processors, including CPUs, GPUs, and FPGAs.
This workshop shows you how to:
- Use oneDPL to streamline SYCL programming.
- Take advantage of Parallel API—an implementation of the C++ Standard Template Library algorithms and execution policies used in heterogeneous computing.
- Implement oneDPL algorithms using buffers and Unified Shared Memory (USM).
- Implement iterators in the oneapi::dpl namespace.
- Use oneDPL to implement C++20 Ranges.
- Build an application with oneDPL on the Intel® Developer Cloud to perform gamma correction.
Skill level: Intermediate
Get the Software
Develop performant code quickly and correctly across hardware targets, including CPUs, GPUs, and FPGAs, with this standards-based, multiarchitecture compiler.
3:42 Programming challenges for multiple architectures
4:40 Introducing oneAPI
5:47 oneAPI industry initiative
7:00 Intel oneAPI Base Toolkit
9:18 How the Intel® Developer Cloud for oneAPI works
10:15 Set up an Intel Developer Cloud account
11:23 Walk through a Jupyter* Notebook
13:52 How to get to Module 7 for oneDPL
17:03 Steps to getting started
20:58 Learning objectives
21:09 What is oneDPL?
24:32 Examples of implementing oneDPL
28:10 oneDPL example
30:07 How oneDPL works
30:48 Multiple oneDPL algorithms
32:19 Buffer iterators
34:00 USM pointers
35:58 USM allocators
38:50 Module 7: Hands-on workshop
39:48 Simple oneDPL example
43:35 Example of using multiple oneAPI algorithms
45:20 Example of oneDPL buffer iterators
47:52 Example of oneDPL USM pointers and allocators
51:45 oneDPL gamma correction example
1:04:30 The parallel APIs of oneDPL
1:05:58 Reduce by segment
1:08:36 Inclusive scan by segment
1:10:56 Exclusive scan by segment
1:12:28 Binary search
1:14:03 Lower bound
1:16:27 Upper bound
1:17:40 Counting iterator
1:20:28 Transform iterator
1:22:52 Zip iterator
1:24:50 Questions about upper bound
1:27:50 Function object classes
1:28:40 Hands-on: oneDPL parallel notebook
1:29:20 Example of reduce by segment
1:34:50 Example of upper bound
1:37:30 Example of an iterator
1:49:23 Example of a range-based API
1:54:08 Recap of the workshop
You May Also Like
Related On-Demand Webinars