GPU Programming Part 1: Foundations (Trainingskurs, Präsenzveranstaltung)
Dr. Jan Meinke
(Kursnr. 1292023 im Trainingsprogramm 2023 des Forschungszentrums Jülich)
Der Kurs findet in Präsenz am JSC statt.
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.
Contents of Part 1: Basics of GPU Programming with CUDA
Date: 17–21 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
Contents of Part 2: Advanced GPU Programming
Date: 19–23 June 2023 (see separate announcement)
A) Advanced Mutli-GPU Programming with MPI
B) Advanced Multi-GPU Programming with NCCL and NVSHMEM
C) Advanced and Modern CUDA Concepts (Cooperative Groups, CUDA Graphs, CUB Primitives, Modern C++ Programming)
D) CUDA Fortran
E) GPU Programming with Abstractions (OpenACC, Standard Language Programming (pSTL))
Attendees are invited to pick and choose the parts of the advanced course (A - E) they want to attend. The advanced modules are mostly freestanding. Participants either need to attend this basic course or prove equivalent knowledge of GPU programming in order to participate in the advanced course.
Programmers interested primarily in OpenACC may skip parts D and E of the basics course and still choose part E from Advanced GPU Programming. Participation in the full Basics of GPU Programming with CUDA course, however, is recommended.
Some knowledge about Linux, e.g. make, command line editor, Linux shell, experience in C/C++
Scientists who want to use GPU systems
Der Kurs wird auf Englisch gehalten
17. - 19. April 2023, 09:00-16:30 Uhr
JSC, Geb. 16.3, R. 213a (Ausbildungsraum 1)
Anzahl der Teilnehmenden:
Dr. Jan Meinke, Dr. Andreas Herten, Dr. Kaveh Haghighi-Mood, JSC;
Jiri Kraus, Markus Hrywniak, NVIDIA
Bitte melden Sie sich über das Anmeldeformular bis zum 31. März 2023 an.
Die Angemeldeten werden informiert, ob sie zur Teilnahme zugelassen sind.