Introduction to GPU Programming
This course gives basic to intermediate level knowledge on programming of AMD and NVIDIA GPUs. It starts with a basic introduction to GPU architecture and programming model using C++ with HIP and CUDA, as well as with HOP portability layer. Then, building on this, more advanced topics such as streams and using multiple GPUs are introduced. Performance analysis tools are used throughout the course for illustrating various performance aspects. Calling C++ GPU kernels from Fortran programs is also demonstrated briefly. Course contains both lectures and hands-on exercises.
Learning outcome
At the end of the course, participants will be able to:
- Explain basic hardware architecture of GPUs
- Understand the programming model of GPUs
- Implement GPU programs
- Apply performance analysis tools for GPUs
- Use multiple GPUs
Prerequisites and content level
- Basic skills in working with Linux command line, including how to compile and build programs.
- Working knowledge of the C++ (or C) programming language.
For multi-GPU part (during day 3) familiarity with MPI.
Content
- Introduction to GPUs and GPU programming
- Memory access, GPU kernels and synchronization
- Streams and events
- Kernel optimization
- Using multiple GPUs
Agenda
(Tentative)
Day 1, Monday 11.5. 2026, 9:00-16:00
- Introduction to GPUs and GPU programming
- Basic usage, memory allocation, memory copies and kernels
- Analyzing simple traces
Day 2, Tuesday 12.5. 2026, 9:00-16:00
- More advanced memory allocation/access
- Unified memory
- Streams and events
- More advanced synchronization
Day 3, Wednesday 13.5.2026, 9:00-16:00
- Shared local memory
- Kernel optimisation and libraries
- Multi-GPU programming
The content level of the course is broken down as: beginner’s – 0%, intermediate – 60%, advanced – 40%, community-targeted content – 0%.
Students from University of Helsinki can register in Sisu at https://studies.helsinki.fi/courses/course-implementation/hy-opt-cur-2526-5ea5b652-88a2-4545-8f77-dffa0e55c495
For questions on course contents and practicalities, contact leopekka.saraste@csc.fi.
For questions on registrations, contact training@csc.fi.
If you later find out that you cannot attend the course, please cancel your registration using the link in the registration confirmation email or by emailing training@csc.fi.