The CUDA C++ Developer Toolbox
summary
Shows concrete rules and code patterns: prefer Thrust and libcu++ over hand‑written kernels when they meet needs, fuse transform+reduce with transform_reduce to avoid O(n) temporaries, and use CUB when you need fully asynchronous device algorithms (it requires a two‑pass reduction and explicit temp‑storage sizing). Implements a working 2D heat‑equation solver with a five‑point stencil using MDSpan, CUDA streams and a staging buffer, overlapping GPU compute with host IO and avoiding implicit unified‑memory migrations for much better throughput.
AI-written summary · about
chapters (10)
- 0:00CUDA C++ development intro
- 2:35What is CUDA C++
- 5:25First CUDA C++ program
- 9:38Optimizing with Thrust fused ops
- 14:41Thrust by-key data grouping
- 18:10Heat equation simulation
- 23:51Thrust and CUDA streams asynchrony
- 29:12CUB lower-level control
- 33:45CUDA unified memory
- 36:32Overlap compute and I/O
related talks
01h 33mGPU programming with modern C++
59mUsing Template Magic to Automatically Generate Hybrid CPU/GPU-Code
01h 00mSYCL: Open Your Code to More Hardware Choices
35mCUTLASS: A CUDA C++ Template Library for Accelerating Deep Learning...
53mFaster Code Through Parallelism on CPUs and GPUs
01h 01mA Modern C++ Programming Model for GPUs using Khronos SYCL
25m"Boosting Python Numeric Computations with Dynamic C++ Integration"
28mA Smooth Introduction to SYCL for C++20 Afficionados
