Description
This course gives an introduction to programming GPUs using the directive based OpenACC paradigm. The course consists of lectures and hands-on exercises. The course covers the basic usage of OpenACC, as well as some more advanced topics related to profiling, performance, interoperability with CUDA and multi-GPU programming.
During the last day there is also an opportunity to discuss your own code with the lecturers, and to investigate possibilities for porting your own code to OpenACC.
Learning outcome
After the course the participants should have the basic skills needed for utilizing OpenACC in new, or existing programs.
Prerequisites
The participants are assumed to have working knowledge of Fortran and/or C programming languages. In addition, fluent operation in a Linux/Unix environment will be assumed.
Agenda
Day 1, Wednesday 7.12
09.00 – 12.00 SESSION 1 & Coffee break
- Introduction to accelerators
- Introduction to OpenACC
- Exercises
12.00 – 13.00 Lunch
13.00 – 16.00 SESSION 2 & Coffee break
- Data movement
- Exercises
Day 2, Thursday 8.12
09.00 – 12.00 SESSION 3 & Coffee break
- Profiling
- Performance considerations
- Exercises
12.00 – 13.00 Lunch
13.00 – 16.00 SESSION 4 & Coffee break
- Asynchronous operations and pipelining
- Interoperability with CUDA and GPU-Accelerated libraries
- Exercises
Day 3, Friday 9.12
09.00 – 12.00 SESSION 5 & Coffee break
- Multi-GPU programming
- Exercises
12.00 – 13.00 Lunch
13.00 – 16.00 SESSION 6 & Coffee break
- Bring-your-own-code
Lecturers:
Sebastian von Alfthan (CSC), Sami Ilvonen (CSC)
Language: English
Price: Free of charge