GPU Programming

Nick Johnson
n.johnson@epcc.ed.ac.uk

Kevin Stratford
k.stratford@epcc.ed.ac.uk

EPCC Logo

https://nickaj.github.io/exlat-gpu-course/

Notice

Part of this course is based upon the ARCHER GPU course as developed by EPCC.
I have added some material and an exercise on building a CG solver as part of the ExaLAT project.
ExaLat is funded by UKRI under grants: EP/V001329/1, EP/V001191/1, EP/V001477/1, EP/V001248/1, EP/V001140/1

ExaLAT Logo

Clone/fork this presentation at: https://github.com/nickaj/exlat-gpu-course

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

Timetable Day One

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

13:30 Exercise contiued (or a longer lunch break if you need it)
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 & Warmup
10:10 ExaLAT: exercise introduction and discussion
10:30 Exercise time
11:00 Break
11:20 ExaLAT2: multi-GPU methods
11:40 Exercise continuation / multi-GPU exercise
12:30 Lunch

13:30 Continue exercises (single/multi-GPU)
14:00 OpenCL and OpenACC Directives
15:00 Break
15:15 OpenCL and / or Directives Exercises
16:00 Close

Exercises

You will need an ssh client

$ ssh -l ACCOUNT-NAME [-X|-Y] login.cirrus.ac.uk


You need a copy of the exercises:

$ git clone https://github.com/nickaj/exlat-gpu-course/

Once:

$ module load nvidia/cuda-10.2
$ cd exlat-gpu-course/exercises/...

Edit the file (method of your choice):

$ sbatch submit.sh