Skip to content

csc-training/hip-programming

Repository files navigation

Introduction to GPU programming

Course material for the CSC course "Introduction to GPU programming".

Siili document for additional info during the course: https://siili.rahtiapp.fi/9lXWbh-ETaiCuzMuWYmMRw

Agenda

Day 1

Time Topic
09:00–09:15 Welcome, LUMI access, slurm, git, web interface
09:15-09:30 What is CSC?
09:30–09:45 Break/debugging access
09:45–10:30 Introduction to GPU's and GPU programming
10:30–10:45 Break
10:45-11:30 Basic usage, memory allocation and kernels
11:30-11:45 Break
11:45-12:15 Exercises
12:15-13:00 Lunch
13:00-13:45 Basic usage cont.
13:45-14:00 Break
14:00-14:30 Exercises
14:30-15:15 Analyzing simple traces
15:15-15:30 Break
15:30-16:00 Exercises
16:00-16:15 Day summary

Day 2

Time Topic
09:00–09:30 Day 1 Recap
09:30–10:00 Streams and events
10:00–10:15 Break
10:15–11:00 Exercises
11:00-11:30 Memory allocations, access, and unified memory
11:30-11:45 Break
11:45-12:15 Exercises
12:15-13:00 Lunch
13:00-13:45 Exercises cont'd
13:45-14:00 Break
14:00-14:30 Inspecting exercise traces, rocprof
14:30-15:00 Bonus exercise
15:00-16:00 Close-up

Day 3

Time Topic
09:00–10:00 Performance optimization (I)
10:00–10:15 Break
10:15–10:45 Exercises
10:45-11:30 Performance optimization (II)
11:30-11:45 Break
11:45-12:15 Exercises
12:15-13:00 Lunch
13:00-13:30 HOP and performance portability
13:30-13:45 Break
13:45-14:15 Exercises
14:15-14:45 Multi-GPU programming
14:45-15:45 Break & Exercises
15:45-16:00 Close-up

Slides

Link to slides

First steps

Exercises

General instructions

Introduction and GPU kernels

Tracing kernels

Streams, events, and synchronization

Memory allocations, access, and unified memory

Optimization

Multi-GPU programming and HIP+MPI

Porting to HIP

Bonus