CARLA 2024

Instructor: Tom Papatheodore

Affiliation: (AMD University Program) Senior member of technical staff (SMTS) working within AMD’s

University Program as a software development engineer.

Chair(s):

Kary Ocaña
National Laboratory of Scientific Computing, Brazil
karyann@lncc.br 

Alberto J. Martin
Universidad San Sebastián, Fundación Ciencia & Vida, Chile 
alberto.martin@uss.cl

John Anderson Garcia Henao
University of Bern, Switzerland 
jagh@nucleusai.net

Brief Program:

  • Presentation
  • Access to AMD AI & HPC Cluster
  • Introduction of Tutorial & Motivation
  • GPU usage in HPC modeling & simulation and AI
  • AMD Instinct and Radeon GPUs
  • Introduction to ROCm/HIP (Part 1)
  • Overview of ROCm ecosystem and HIP
  • GPU host-device programming model
  • HIP API, kernel language
  • Learn by examples w/ presenter demos
  • The basics w/ vector addition, error checking, GPU timers
  • Hands-On Session (Part 1)
  • Exercises base on Part1 lecture/demos
  • Introduction to ROCm/HIP (Part 2) 
  • Learn by examples w/ presenter demos
  • Concurrent kernels, overlap data transfers w/ compute, hipify
  • Hands-On Session (Part 2)
  • Exercises based on Part 1 and 2 lecture/demos
  • Wrap-Up

Introduction to Programming AMD GPUs w/ HIP

Information

In this tutorial, we will give a hands-on introduction to the Heterogeneous Interface for Portability (HIP) programming model. As the name suggests, HIP is a portability layer that lets developers write source code in a single CUDA-like syntax that can run on GPUs from multiple vendors. We will begin by giving an overview of HIP, covering the host-device programming model and grid/block/thread hierarchy associated with GPU programming, and showing the HIP runtime API and kernel language. From there, we will jump into examples and demonstrations to teach i) the basics with a simple vector addition program, ii) HIP error checking, and iii) how to explicitly time sections of GPU code. The participants will then be asked to work through exercises on the topics in a hands-on session. After the hands-on session, we will introduce some intermediate HIP topics, such as i) running concurrent kernels, ii) overlapping data transfers with compute, and iii) porting methods.

Student´s prerequisites

The intended audience for this tutorial should be CARLA participants who are fairly comfortable on a Linux command line, have experience in a compiled programming language (C/C++/Fortran), and have a laptop to `ssh` into a remote cluster.

Materials

Participants will be given temporary access to AMD´s academic AI & HPC Cluster for the hands-on sessions. To access the cluster, participants will need to have a laptop with SSH client (e.g., native terminals on Mac/Linux).

Previous editions

This will be an extended version of a tutorial given to SC23 participants, but not as part of the actual conference.

References

https://rocm.docs.amd.com/projects/HIP/en/latest/index.html

More information: T06-GPU-AMD-HIP-Programming