GPU Programming Part 1: Foundations

Course/Event Essentials

Event/Course Start
Event/Course End
Event/Course Format
In person
Live (synchronous)

Venue Information

Country: Germany
Venue Details: Click here

Training Content and Scope

Scientific Domain
Technical Domain
Level of Instruction
Beginner
Sector of the Target Audience
Research and Academia
Industry
Public Sector
HPC Profile of Target Audience
Application Users
Application Developers
Language of Instruction

Other Information

Organiser
Event/Course Description

GPU-accelerated computing drives current scientific research. Writing fast numeric algorithms for GPUs offers high application performance by offloading compute-intensive portions of the code to a GPU.

The course will cover aspects of GPU architectures and programming. Focus is on the usage of the parallel programming language CUDA C++, which allows maximum control of NVIDIA GPU hardware. Examples of increasing complexity are used to demonstrate optimization and tuning of scientific applications.

This course is a basic course covering the foundations of GPU programming including an introduction to GPU/parallel computing, programming with CUDA, GPU libraries, tools for debugging and profiling, and performance optimizations.

In addition, an advanced course is available with modules providing more in-depth coverage of multi-GPU programming, modern CUDA concepts, CUDA Fortran, and portable programming models such as OpenACC and C++ parallel STL algorithms. The advanced modules will be taught from 19-23 June 2023, see the dedicated announcement for registration.

Note: For the first time, the GPU Programming with CUDA course is held in two parts, each with individual modules. This should allow for fine-grained selection of topics of relevance.

Contents of Part 1: Basics of GPU Programming with CUDA

Date: 17–19 April 2023 (this announcement)

A) Introduction to GPUs and GPU Computing
B) Programming Model CUDA
C) Tools for Debugging and Profiling
D) GPU Libraries (like cuBLAS, cuFFT)
E) Introduction to Multi-GPU Programming