When

Oct 22, 2024
(Europe/Berlin / UTC200)

Where

Online

Contact Name

Contact Phone

0711 685 65796

Add event to calendar

iCal

OpenMP is one major option how to use GPUs to accelerate/offload computations on today's heterogenous computer systems. This course will give an introduction to the AMD Instinct™ GPU and Accelerated Processing Unit (APU) architectures to lay foundations of how GPUs work and can be used for offloading in OpenMP. New features of recent OpenMP versions and GPUs such as the unified memory programming model will be introduced, which make writing HPC applications much easier for a wide range of GPU programming models. In addition, tools for performance anylsis and optimization will be presented.

This course targets beginners in GPU programming with basic knowledge of parallelization with OpenMP and/or MPI on CPUs. After this course you will have learned the basics to confidently start porting your application from a CPU only system to systems with discrete GPU accelerators or APUs.

In this course, participants will

  • Gain foundational knowledge about GPUs and APUs, and their roles in high-performance computing.
  • Learn how to utilize OpenMP offloading with unified shared memory to simplify data management and improve performance.
  • Explore techniques for explicit data management in OpenMP offloading, enabling more control over data movement and optimization.
  • Understand the principles and benefits of asynchronous offloading to enhance computational efficiency and overlap computation with data transfer.
  • Discover various tools and methodologies for analyzing and optimizing the performance of your applications.
  • Apply your knowledge in a practical session where you’ll port a small application, reinforcing the concepts learned throughout the workshop.
Prerequisites

Basic experience in OpenMP programming, e.g. by attending the Parallel Programming Workshop. Participants should have an application developer's general knowledge of computer hardware, operating systems, and be familiar with C/C++ or Fortran.

See also the suggested prereading below (resources and public videos).

Content levels

Basic: 2 hours
Intermediate: 2.5 hours
Advanced: 1 hours