Heterogeneous Programming in C++ today
summary
C++ is moving from CPU-only parallelism toward practical heterogeneous programming using single-source C++ via SYCL/SPIR and vendor runtimes (OpenCL ICDs, CUDA, HSA). The approach uses implicit data movement with buffers/accessors, named kernel lambdas for ABI stability, a multi-compilation model and executor/execution-policy plumbing. A concrete result: a SYCL-backed GPU implementation of vector add shows about a 4x speedup vs CPU when iteration counts justify transfer cost. Expect vectors and execution facilities in C++20, heterogeneous offload via TS and runtimes afterward.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 1:07C++ and heterogeneous computing
- 13:24Why the rush to parallelism
- 21:14C++ 20 and parallelism
- 39:53Heterogeneous programming fundamentals
- 53:46Performance portability challenges
- 1:09:18Modern C++ heterogeneous tools
- 1:21:40Sycl and data movement
- 1:31:23Summary and future
related talks
56m“Towards Heterogeneous Programming in C++"
01h 33mGPU programming with modern C++
01h 07mHeterogeneous Modern C++ with SYCL
37mC++ for multi-accelerator, multi-vendor systems
01h 01mA Modern C++ Programming Model for GPUs using Khronos SYCL
01h 02m“Parallelism in Modern C++"
58mC++ Standard Parallelism
01h 01mTake Advantage of All the MIPS - SYCL & C++
