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.
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:
17-19 April 2022, 09:00-16:30 each day
Location: Forschungszentrum Jülich, Jülich, Germany
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