GPU programming Part 2: Advanced GPU Programming (training course, online)

Anfang
07.07.2025 07:00 Uhr
Ende
11.07.2025 11:00 Uhr
Veranstaltungsort
Online
Kontakt

Dr. Jan Meinke

(Kurs-Nr. 802025 im Trainingsprogramm 2025 des Forschungszentrums Jülich)

Dieser Kurs findet als Online-Veranstaltung und auf Englisch statt. Der Link zur Streaming-Plattform wird nur den Teilnehmern zur Verfügung gestellt, die sich anmelden.

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.

The foundations of GPU programming are covered in a dedicated Basic Course which include an introduction to GPU/parallel computing, programming with CUDA, GPU libraries, tools for debugging and profiling, and performance optimizations. Please see the CUDA Basics course for registration.

This advanced course consists of 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 07-11 July 2025.

Note: The GPU Programming with CUDA course is held in two parts. This is the second course, which contains individual modules to allow for fine-grained selection of topics of relevance.

Inhalte T 1: Basics of GPU Programming with CUDA

Date: 31.03.-02.04. 2025, on-site at JSC (see separate announcement)
The agenda of the basic course are given here for completeness. For registration, please see dedicated website.

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: 07-11 July 2025 (this announcement)

A) Advanced Multi-GPU Programming with MPI
B) Advanced Multi-GPU Programming with NCCL and NVSHMEM
C) Advanced and Modern CUDA Concepts (Cooperative Groups, CUB Primitives, Modern C++ Programming)
D) CUDA Fortran and GPU-accelerated Standard Fortran or Kokkos for Portable GPU Programming
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 the basics 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 Basics of GPU Programming with CUDA and still choose part E from Advanced GPU Programming. Participation in the full Basics of GPU Programming with CUDA course, however, is recommended.

Voraussetzungen:

Participants either need to attend the basics course or prove equivalent knowledge of GPU programming in order to participate in the advanced course. Some knowledge about Linux, e.g. make, command line editor, Linux shell, experience in C/C++ is also required.

Zielgruppe:

Scientists who want to use GPU systems

Sprache:

This course is given in English.

Dauer:

5 half days

Zeit:

07-11 July 2025, 09:00-13:00 each day

Ort:

Online

Anzahl der Teilnehmenden:

maximum 30

Referierende:

Dr. Jan Meinke, Dr. Andreas Herten, Dr. Kaveh Haghighi-Mood, JSC;
Jiri Kraus, Markus Hrywniak, NVIDIA

Kontakt:

  • Institute for Advanced Simulation (IAS)
  • Jülich Supercomputing Centre (JSC)
Gebäude 14.14 /
Raum 4012
+49 2461/61-2315
E-Mail

Anmeldung:

Zum Anmeldeformular: https://indico3-jsc.fz-juelich.de/event/235/

Letzte Änderung: 01.04.2025