C++ on GPUs done right?
summary
C++ on GPUs today shows concrete tradeoffs not slogans: CUDA, OpenCL, Thrust, HCC/HC, OpenMP/OpenACC and Boost Compute are usable but differ in portability and control. A deconvolution algorithm is ported to GPUs and produces visibly better images. Hardware facts matter: Titan uses 18,000 nodes, a Tesla K80 gives ~8.7 TF SP, Kepler SM has 192 cores and 64 KB registers, memory loads cost ~200–400 cycles and warp = 32 threads, PCIe creates a bottleneck so PCIe is ~5x slower and explicit transfers dominate performance.
AI-written summary · about
chapters (27)
- 0:00Einleitung
- 2:47WHO AM I?
- 4:05WHAT DO I DO?
- 7:36VENDOR OPTIONS
- 8:04VENDOR FLAG SHIPS
- 12:10A MORE IN-DEPTH LOOK
- 13:08KEPLER SMX CLOSE-UP
- 14:25SIMT EXECUTION
- 16:23HIDING MEMORY LATENCY
- 18:05COMPUTE MEMORY ACCESS
- 18:58DATA LOCALITY CPU
- 24:39CUDA OVERVIEW
- 26:47CUDA CODE: MEM INIT
- 27:35CUDA CODE: COMPUTE
- 29:19CUDA WRAP-UP
- 33:35OPENCL KERNEL
- 34:57OPENCL IS LIKE ...
- 35:51THRUST CODE: FUNCTOR
- 36:37THRUST CODE: GPU DISPATCH
- 37:25THRUST WRAP-UP
- 39:37THRUST IS LIKE ...
- 43:27HCC WRAP-UP
- 45:50PRAGMA BASED APPROACHES
- 50:58OPENCL TOMORROW
- 52:04CUDA TOMORROW
- 53:57MY C++17 GPU EXCITEMENT
- 55:26C++ ON GPUS DONE RIGHT?
related talks
31mGPU Performance Portability Using Standard C++ with SYCL
01h 02mC++ Performance Portability - A Decade of Lessons Learned
37mC++ for multi-accelerator, multi-vendor systems
30mKuiper: verified and efficient GPU programming
01h 02mcudaFlow: Modern C++ Programming Model for GPU Task Graph Parallelism
01h 01mDoes my C++ Object Model Work with a GPU and Can I Make It Safe
01h 07mWriting Data Parallel Algorithms on GPUs
01h 07mAnother fundamental shift in Parallelism Paradigm?
