C++ Edition: Fundamentals of Accelerated Computing with Modern CUDA
This workshop provides a comprehensive introduction to general-purpose GPU programming with CUDA. You'll learn how to write, compile, and run GPU-accelerated code, leverage CUDA core libraries to harness the power of massive parallelism provided by modern GPU accelerators, optimize memory migration between CPU and GPU, and implement your own algorithms. At the end of the workshop, you'll have access to additional resources to create your own GPU-accelerated applications.
- Sept 22Magazinet Kongsberg1 day07:00 - 15:00 UTCBryce Adelstein Lelbach-
The course is hands-on and interactive. You'll use our web-based, zero-install platform to complete coding exercises and learn to use developer tools like our Nsight visual profiler.
At the conclusion of the workshop, you'll have an understanding of the fundamental concepts and techniques for accelerating C++ code with CUDA and be able to:
- Write and compile code that runs on the GPU
- Optimize memory migration between CPU and GPU
- Leverage powerful parallel algorithms that simplify adding GPU acceleration to your code
- Implement your own parallel algorithms by directly programming GPUs with CUDA kernels
- Utilize concurrent CUDA streams to overlap memory traffic with compute
- Know where, when, and how to best add CUDA acceleration to existing CPU-only applications
All of the course materials are open source, and can be found here: https://github.com/NVIDIA/accelerated-computing-hub/tree/main/gpu-cpp-tutorial

Bryce Adelstein Lelbach has spent over a decade developing programming languages, compilers, and software libraries. He is passionate about parallel programming and strives to make it more accessible for everyone.
Bryce is a Principal Architect at NVIDIA, where he leads programming language efforts and drives the technical roadmap for NVIDIA's compute compilers and libraries.
He is one of the leaders of the systems programming language community, having served as chair of the Standard C++ Library Evolution group and the US standards committee for programming languages (INCITS/PL22). He has been an organizer and program chair for many conferences over the years.
On the C++ Committee, he has personally worked on concurrency primitives, parallel algorithms, executors, and multidimensional arrays. He is one of the founding developers of the HPX parallel runtime system.
Outside of work, Bryce is passionate about airplanes and watches. He lives in Midtown Manhattan with his girlfriend and dog.