GPU Programming

Presenters: Kevin Stratford, Rupert Nash,


Clone/fork this presentation at:

Creative Commons Licence

Slide content is available under under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

This means you are free to copy and redistribute the material and adapt and build on the material under the following terms: You must give appropriate credit, provide a link to the license and indicate if changes were made. If you adapt or build on the material you must distribute your work under the same license as the original.
Note that this presentation contains images owned by others. Please seek their permission before reusing these images.

Built using reveal.js

reveal.js is available under the MIT licence


ARCHER is the UK National Supercomputer Service

EPSRC Logo NERC Logo EPCC Logo Cray Inc. Logo
Picture of ARCHER machine itself

Timetable Day One

10:00 Introduction
10:20 GPU Concepts/Architectures
11:00 Break
11:20 CUDA Programming
12:00 A first CUDA exercise
13:00 Lunch

14:00 CUDA Optimisations
14:20 Optimisation Exercise
15:00 Break
15:20 More on Memory
16:00 Exercises
17:00 Close

Timetable Day Two

10:00 Recap
10:10 OpenCL and OpenACC Directives
11:00 Break
11:30 OpenCL and / or Directives Exercises
13:00 Lunch

14:00 Performance portability and Kokkos
14:30 Exercise: Getting started with Kokkos patterns
15:00 Break
15:10 Kokkos memory management
15:30 Memory management exercises
16:00 Close

Timetable Day Three

10:00 Hackathon introduction
10:10 Guest lecture from Alan Gray (NVIDIA)
"CUDA 11: New Features and Beyond"
11:00 Break
11:30 Hackathon
13:00 Lunch
14:00 Hackathon
15:00 Break
15:20 Hackathon
17:00 Close

Local Information

  • Please take care of your personal belongings.
  • Bayes Centre Fire alarm test is 11:30 Thursdays.


You will need an ssh client

$ ssh -l ACCOUNT-NAME [-X|-Y]

You need a copy of the exercises:

$ git clone


$ module load gcc cuda
$ cd archer-gpu-course/exercises/cuda-intro/src_c

Or (CUDA Fortran):

$ module load gcc nvidia/compilers-20.5

Edit the file (method of your choice):

$ sbatch