GPU Programming Part 1: Foundations

Europe/Berlin
Bldg. 16.3. Rm 213a (Ausbildungsraum 1) (Jülich Supercomputing Centre)

Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

Jülich Supercomputing Centre

Forschungszentrum Jülich, Jülich, Germany
Andreas Herten (Forschungszentrum Jülich), Jan Meinke (Forschungszentrum Jülich)
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 3-7 June 2024, see the dedicated announcement for registration.

 

Topics covered will include

  • Introduction to GPUs and GPU Computing
  • Programming Model CUDA
  • Tools for Debugging and Profiling
  • GPU Libraries (like cuBLAS, cuFFT)
  • Introduction to Multi-GPU Programming

 

Prerequisites: Some knowledge about Linux, e.g. make, command line editor, Linux shell, experience in C/C++

 

Dates:
8-10 April 2024, 09:00-16:30 each day

 

Location: Jülich Supercomputing Centre, building 16.3, room 213a (Ausbildungsraum 1)

 

Language: This course is given in English.

 

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

Contact 
For any questions concerning the course, please send an e-mail to j.meinke@fz-juelich.de

    • 09:00 10:30
      Introduction 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 10:30 10:45
      Coffee break 15m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 10:45 12:15
      Introduction 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 12:15 13:15
      Lunch break 1h Seecasino

      Seecasino

      Forschungszentrum Jülich
    • 13:15 14:45
      Introduction 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 14:45 15:00
      Coffee break 15m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 15:00 16:30
      Introduction 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 09:00 10:30
      Tools 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 10:30 10:45
      Coffee break 15m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 10:45 12:15
      Tools 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 12:15 13:15
      Lunch break 1h Seecasino

      Seecasino

    • 13:15 14:45
      Matrix Multiplication 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 14:45 15:00
      Coffee break 15m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 15:00 16:30
      Performance Optimization 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 09:00 10:30
      CUDA Streams 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 10:30 10:45
      Coffee break 15m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 10:45 12:15
      CUDA Streams 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 12:15 13:15
      Lunch break 1h Seecasino

      Seecasino

    • 13:15 14:45
      Multi-GPU Programming 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 14:45 15:00
      Coffee break 15m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany
    • 15:00 16:30
      Multi-GPU Programming 1h 30m Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Bldg. 16.3. Rm 213a (Ausbildungsraum 1)

      Jülich Supercomputing Centre

      Forschungszentrum Jülich, Jülich, Germany