GPU programming with modern C++
summary
Modern C++ code uses SYCL plus C++17 execution policies to offload algorithms to GPUs via a queue, device selector, and buffer+accessor implicit copy model that builds a dependency task graph; kernels use an ND-range/work-group with local/global/local memory and barriers for reductions. The demo implements a parallel reduction (folding halves with barriers) and shows mixed CPU+GPU load balancing and a 3–5× speedup on large inputs (2^19 elements); multiple SYCL backends (ComputeCpp, Intel/Clang, HIP, triSYCL) target real hardware.
AI-written summary · about
chapters (43)
- 0:00Introduction
- 1:00Michaels background
- 2:00Why Im here
- 3:00Outline
- 4:00Recap
- 5:00Right abstraction
- 7:45Task vs data parallelism
- 8:25Latency and bandwidth
- 8:55DMV example
- 11:00Flynns Taxonomy
- 13:05CPU vs GPU
- 14:00Multicore CPU
- 14:30Architectures
- 15:30Memory bound problem
- 15:45Memory optimization
- 16:30Pad properly
- 17:30Data layout
- 18:50Power of computing
- 20:00What happened
- 20:40What happened in 2011
- 24:35CPU vs GPU performance
- 25:10GPU explosion
- 25:50Hardware
- 27:15GPU programming
- 28:50Parallelization and concurrency
- 33:20Heterogeneity
- 33:55Consumer AI
- 34:25GPU languages
- 36:45C executives
- 38:20How GPUs work
- 39:30How CPUs work
- 40:10How GPU work
- 41:20Memory regions
- 44:45Multiple work items
- 45:05Wavefronts
- 46:15Lockstep
- 48:00Kernel barriers
- 49:00Summary
- 49:20Code
- 50:20SpinD
- 51:30ND Range
- 54:15Sickle
- 54:50Chronos
related talks
01h 01mA Modern C++ Programming Model for GPUs using Khronos SYCL
01h 32mHeterogeneous Programming in C++ today
01h 00mSYCL: Open Your Code to More Hardware Choices
01h 10mC++17 ParallelSTL: A Standardization Experience Report for CPU and GPU on SYCL
56m“Towards Heterogeneous Programming in C++"
57mC++ Standard Parallelism
41mSYCL building blocks for C++ libraries
28mA Smooth Introduction to SYCL for C++20 Afficionados
