April 5, 2024
Online
Europe/Berlin timezone

Multi-GPU Programming with CUDA C++ Part 1: Accelerating CUDA C++ Applications with Multiple GPUs

 

Date and Time

The course will be held online on April 5th, from 9 am to 5 pm. Part 2 will be held on April 10th.

 

Prerequisites

  • Successful attendance of Fundamentals of Accelerated Computing with CUDA C/C++ or equivalent experience implementing CUDA C/C++ applications, including
    • memory allocation, host-to-device and device-to-host memory transfers,
    • kernel launches, grid-stride loops, and
    • CUDA error handling. 
  • Familiarity with the Linux command line.
  • Experience using Makefiles to compile C/C++ code.
  • A free NVIDIA developer account is required to access the course material. Please register prior to the training at https://courses.nvidia.com/join/.

 

Learning Objectives

Part one covers Accelerating CUDA C++ Applications with Multiple GPUs. At the conclusion of the workshop, you will be able to:

  • Use concurrent CUDA streams to overlap memory transfers with GPU computation,
  • Utilize all GPUs on a single node to scale workloads across available GPUs,
  • Combine the use of copy/ compute overlap with multiple GPUs, and
  • Rely on the NVIDIA Nsight Systems timeline to observe improvement opportunities and the impact of the techniques covered in the workshop.

 

Certification

Upon successful completion of all course assessments, participants will receive an NVIDIA DLI certificate to recognize their subject matter competency and support professional career growth.

 

Structure

Module 1 -- Introduction to CUDA Streams

  • Get familiar with your GPU-accelerated interactive JupyterLab environment.
  • Orient yourself with a single GPU CUDA C++ application that will be the starting point for the course.
  • Observe the current performance of the single GPU CUDA C++ application using Nsight Systems.
  • Learn the rules that govern concurrent CUDA stream behavior.
  • Use multiple CUDA streams to perform concurrent host-to-device and device-to-host memory transfers.
  • Utilize multiple CUDA streams for launching GPU kernels.
  • Observe multiple streams in the Nsight Systems Visual Profiler timeline view.

Module 2 -- Multiple GPUs with CUDA C++

  • Learn the key concepts for effectively using multiple GPUs on a single node with CUDA C++.
  • Explore robust indexing strategies for the flexible use of multiple GPUs in applications.
  • Refactor the single-GPU CUDA C++ application to utilize multiple GPUs.
  • See multiple-GPU utilization in the Nsight Systems Visual Profiler timeline.

Module 3 -- Copy/ Compute Overlap with CUDA Streams

  • Learn the key concepts for effectively performing copy/ compute overlap.
  • Explore robust indexing strategies for the flexible use of copy/ compute overlap in applications.
  • Refactor the single-GPU CUDA C++ application to perform copy/ compute overlap.
  • See copy/ compute overlap in the Nsight Systems visual profiler timeline.

Module 4 -- Copy/ Compute Overlap with Multiple GPUs

  • Learn the key concepts for effectively performing copy/ compute overlap on multiple GPUs.
  • Explore robust indexing strategies for the flexible use of copy/ compute overlap on multiple GPUs.
  • Refactor the single-GPU CUDA C++ application to perform copy/ compute overlap on multiple GPUs.
  • Observe performance benefits for copy/ compute overlap on multiple GPUs.
  • See copy/ compute overlap on multiple GPUs in the Nsight Systems visual profiler timeline.

 

Program

The program can be found here.

 

Language

The course will be held in English.

 

Instructor

Dr. Sebastian Kuckuk, certified NVIDIA DLI Ambassador.

The course is co-organised by NHR@FAU and the NVIDIA Deep Learning Institute (DLI).

 

Prices and Eligibility

The course is open and free of charge for participants from academia from European Union (EU) member states and countries associated under Horizon 2020.

 

Withdrawal Policy

Please only register for the course if you are really going to attend. No-shows will be blacklisted and excluded from future events. If you want to withdraw your registration, please send an e-mail to sebastian.kuckuk@fau.de.

 

Wait List

To be added to the wait list after the course has reached its maximum number of registrations send an e-mail to sebastian.kuckuk@fau.de with your name and university affiliation.

Starts
Ends
Europe/Berlin
Online
The Zoom link will be provided to registered participants on the day before the event.