Section: The Course | MI300 Architecture | DiRAC Training
-
The Course
-
This lesson will introduce the concept of accelerated computing hardware, including discrete Graphical Processing Units (GPU) and the new Accelerated Processing Units (APU), and discuss how they differ from each other and from the traditional Central Processing Unit (CPU).
After defining much of the terminology likely to be encountered, it will discuss the architecture underpinning these different approaches to accelerated computation. In particular, the difference between a unified shared memory and a more traditional discrete memory set-up will be detailed, along with the advantages that this can grant an APU.
There will follow a discussion on the advantages and potential drawbacks of these different architectures, which will help to inform decisions on the best paradigm to chose given a particular use-case.Learning objectives
By the end of this lesson, you will be able to:
- Categorise different CPU and GPU architecture configurations
- Understand the architectural underpinnings of the AMD Instinct GPUs
- Evaluate which architecture is most suitable and cost effective for your application workload.
-
Programming model Page
This lesson will introduce the different programming models available on AMD GPU and APUs.
It will introduce the concept of host and device, and how architecture-specific memory models impact interactions between them.
The different programming models themselves will then be discussed, and examples of each provided; pragma-based approaches such as OpenMP; native languages including HIP; C++ standard library support; and higher level performance portability frameworks in the forms of Kokkos and RAJA.
The relative strengths of each approach will be discussed, with an aim to aid in the decision-making process when selecting an appropriate approach for a project.
The included exercises will demonstrate how each of these models can be compiled and run on AMD Instinct GPUs.Learning objectives
By the end of this lesson, you will be able to:
- Understand the APU programming model, which AMD Instinct GPUs support it, and how to enable it where possible
- Understand the different programming models and at what level they should be applied to code
- Compile and run simple examples of each programming model on the AMD Instinct GPU
- Choose an appropriate programming model for your problem, considering aspects such as portability and performance.
-