A Modern C++ Programming Model for GPUs using Khronos SYCL
summary
SYCL is presented as a standard C++ single‑source model layered on OpenCL 1.2 (SYCL 1.2.1) with an implementation (ComputeCpp) that compiles device lambdas to SPIR/PTX and runs them via OpenCL. It uses buffers and accessors to build an implicit task graph and move data, queries device limits (max work‑group size), and executes an nd‑range kernel that does a parallel reduction using local memory with work‑group barriers; a host device fallback lets the same code run on CPU for debugging or as a fallback.
AI-written summary · about
chapters (50)
- 0:00Introduction
- 8:40CPU vs GPU
- 10:29CPU
- 10:56GPU
- 11:46Work Items
- 12:23Memory
- 16:19Summary
- 16:55Writing GPU code
- 20:45Terminology
- 21:50Benefits of SYCL
- 22:37SYCL Ecosystem
- 25:49Memory Regions
- 27:54Benefits
- 28:36Parallel Reduction
- 29:03Parallel Algorithms
- 30:01Parallel Villains
- 32:12concurrency
- 34:01how would we paralyze
- 34:31highlevel overview
- 36:05lowlevel overview
- 37:30buffer
- 37:54cue
- 38:23query
- 38:58reduction
- 39:43command group
- 40:19kernel invocation
- 40:56accesser
- 41:12local access
- 41:58parallel
- 42:37template parameter
- 43:11copy data from global memory
- 43:49create lists
- 44:22write enough statement
- 44:34reduction operation
- 45:12barrier
- 46:25complete
- 46:41return
- 47:10ecosystem
- 48:07post conference
- 48:28conclusion
- 48:57Questions
- 49:08Is SYCL tied to specific OpenGL version
- 49:36Accessors and permissions system
- 50:16Flexibility
- 51:25Support for SYCL
- 53:43Compilation
- 55:00Parallel STL
- 55:50Facilities
- 56:29Power Rangers
- 57:46No GPU
related talks
41mSYCL building blocks for C++ libraries
01h 33mGPU programming with modern C++
56m“Towards Heterogeneous Programming in C++"
28mA Smooth Introduction to SYCL for C++20 Afficionados
01h 00mSYCL: Open Your Code to More Hardware Choices
01h 32mHeterogeneous Programming in C++ today
01h 10mC++17 ParallelSTL: A Standardization Experience Report for CPU and GPU on SYCL
58mC++ Standard Parallelism
