Introduction to GPUs Course
Johan Hellsvik & Jonathan Vincent, PDC
Supercomputers with both central processing unit (CPU) and graphics processing unit (GPU) nodes are heterogeneous systems which require programming models that can execute the calculations on the CPUs and GPUs in a stable and efficient manner. They are becoming the norm, compared to previously when many systems were solely based on CPUs. CPUs and GPUs are used for doing different types of calculation work. CPUs have large instruction sets and execute general code, whereas GPUs have smaller instruction sets that are tailored for running compute-intensive work in parallel on a large number of compute units (CU).
GPU computing is becoming increasingly important, and researchers are having to adapt older code to run on the newer GPU systems. To address this need, PDC staff members, together with experts from AMD, HPE and ENCCS, ran a course on GPU computing this autumn. The participants used the new Dardel system at PDC, which has 56 GPU nodes (each with four AMD MI250X GPUs) that are made available to Swedish researchers. Participants were given access to Dardel to run examples or their own code as part of the course. The course started with two online half-days in September followed by two days on-site at KTH in October.
During the course participants were introduced to writing code for GPUs using the programming models HIP, SYCL and OpenMP, as well as using tools such as AMD’s Omnitools and the Cray Performance Tools to debug and optimise their GPU code. As exercise material, the participants were given serial code that was to be ported to GPU code in the respective frameworks. If you missed the course, the lesson material and exercises are hosted at the course’s Git repository on GitHub: github.com/PDC-support/introduction-to-gpu .