Fundamentals of Accelerated Computing with Modern CUDA C++
Course Description
By the end of the workshop, participants will understand the fundamental concepts and techniques for accelerating C++ code with CUDA. They will be able to write and compile code that runs on the GPU, optimize memory transfers between CPU and GPU, and leverage parallel algorithms to simplify adding GPU acceleration.
Additionally, participants will learn to implement custom parallel algorithms through CUDA kernels, utilize concurrent CUDA streams to overlap computation with memory operations, and identify the best opportunities to integrate CUDA acceleration into existing CPU-only applications.
Additional information is available on the Nvidia DLI course homepage.
Learning Objectives
- 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
Course Structure
CUDA Made Easy: Accelerating Applications with Parallel Algorithms
- Write, compile, and run GPU code
- Refactor standard algorithms to execute on GPU
- Extend standard algorithms to fit your unique use cases
Unlocking the GPU’s Full Potential: Harnessing Asynchrony with CUDA Streams
- Use CUDA streams to overlap execution and memory transfers
- Use CUDA events for asynchronous dependency management
- Profile CUDA code with NVIDIA Nsight Systems
Implementing New Algorithms with CUDA Kernels
- Write and launch custom CUDA kernels
- Control thread hierarchy
- Leverage shared memory
- Use cooperative algorithms
Certification
Upon successfully completing the course assessments, participants will receive an NVIDIA DLI Certificate, recognizing their subject matter expertise and supporting their professional career growth.
Prerequisites
A free NVIDIA developer account is required to access the course material. Please register before the training at https://learn.nvidia.com/join.
Participants should additionally meet the following requirements:
- Sound C++ competency, including familiarity with lambda expressions, loops, conditional statements, functions, standard algorithms and containers.
- No previous knowledge of CUDA programming is assumed
Upcoming Iterations and Additional Courses
You can find dates and registration links for this and other upcoming NHR@FAU courses at https://hpc.fau.de/teaching/tutorials-and-courses/.