SYCL building blocks for C++ libraries
summary
SYCL (SYCL 1.2 on top of OpenCL 1.2) is presented as a single-source C++14 model with concrete APIs: queues, command groups, buffers and accessors, plus parallel_for and hierarchical parallelism for kernels. Examples show templated device functions, a buffered device stream for formatted output, a host fallback queue, and building libraries: VisionCpp DSL, a SYCL TensorFlow backend (partial mainline merge), and ComputeCpp Community Edition running on Intel CPUs and AMD GPUs. Performance portability and embedded SPIR are demonstrated as working implementations.
AI-written summary · about
chapters (32)
- 0:00Start
- 1:14Talk Outline
- 3:31Heterogeneous Programming Languages/Models
- 4:21SYCL is entirely Standard C++
- 5:40SYCL can Target a Wide Range of OpenCL Devices
- 6:13Heterogeneous Computing is Everywhere
- 6:25SYCL Ecosystem
- 6:54SYCL Specification Roadmap
- 9:09Device Selectors
- 10:35Command Groups
- 11:44Separating Storage & Access
- 12:36Data Dependency Task Graphs
- 13:32Benefits of Data Dependency Graphs
- 15:31Different forms of Parallelism
- 17:08Example: Vector Add
- 18:37C++ Compilation Model
- 19:06Separate Source (OpenCL)
- 19:50Single Source (SYCL)
- 23:06Template Device Functions
- 25:12Host Device
- 25:42Streaming Output
- 26:43Fall-back Device
- 27:12SYCL C++ Libraries
- 27:48Parallel Algorithms
- 28:36SYCL Parallel Sort
- 30:15Compile-time DSEL Example
- 30:54VisionCpp Example
- 32:45Working with Google
- 33:15TensorFlow on CUDA
- 33:41TensorFlow on SYCL for OpenCL
- 33:51TensorFlow Example Example
- 36:01Conclusion • SYCL for OpenCL is an open standard programming model
related talks
01h 01mA Modern C++ Programming Model for GPUs using Khronos SYCL
28mA Smooth Introduction to SYCL for C++20 Afficionados
01h 07mHeterogeneous Modern C++ with SYCL
56m“Towards Heterogeneous Programming in C++"
01h 00mHeterogeneous Programming in C++ with SYCL 2020
01h 00mSYCL: Open Your Code to More Hardware Choices
01h 33mGPU programming with modern C++
18moneAPI with SYCL gives Software Portability including Nvidia
