Efficient GPU Programming with Modern C++
summary
Demonstrates concrete SYCL code for a 512×512 image convolution on an Intel HD GPU using the OpenCL backend and a separate device compiler; switching to column-major global memory accesses cuts kernel time by over 50% versus a naive kernel, adding float4 vectorization yields ~10% improvement for 3×3 filters, and local memory tiling with workgroup barriers gives ~16% gain but can regress for large filters due to occupancy/register limits. Shows buffers/accessors, command-groups, how lambdas become device binaries, and recommends vendor profilers.
AI-written summary · about
chapters (6)
- 0:00Start
- 16:45follow some basic gpu programming principles
- 27:52create two nested for-loops
- 33:36showing the kernel times as a percentage of the baseline
- 33:58make use of vector operations
- 42:21look at the performance of the kernel with local memory
related talks
41mSYCL building blocks for C++ libraries
01h 07mHeterogeneous Modern C++ with SYCL
01h 00mHeterogeneous Programming in C++ with SYCL 2020
53mIntroduction to C++ AMP (GPGPU Computing)
40mHidden GEMMs: How Optimized Math Libraries Work
01h 06mFoundation of GPU Programming
08mGPU Programming with Triton Kernels
48mBridging the Gap: Writing Portable C++ Programs for CPU and GPU
