21-22 November 2017
Europe/London timezone

Graphics Processing Units (GPUs) were originally developed for computer gaming and other graphical tasks, but for many years have been exploited for general purpose computing across a number of areas. They offer advantages over traditional CPUs because they have greater computational capability, and use high-bandwidth memory systems (where memory bandwidth is the main bottleneck for many scientific applications).

This introductory course will describe GPUs, and the advantages they offer. It will teach participants how to get started with programming GPUs, which cannot be used in isolation but as "accelerators" in conjunction with CPUs, and how to get good performance.

The course focuses on NVIDIA GPUs, and the CUDA programming language (an extension to C/C++ or Fortran).

Hands-on practical sessions are included.

You will require to bring your laptop.  The training will be run on a web-based system so all you will need is a relatively recent web browser (Firefox or Chrome work best).


Day 1

10:00 Introduction
10:20 GPU Concepts/Architectures
11:00 Break
11:20 CUDA Programming
12:00 First CUDA Programming Exercise
13:00 Lunch
14:00 Optimisation
14:30 CUDA Optimisation Practical Exercise
15:00 Break
15:20 CUDA Constant and Shared memory
16:00 Practical exercise
17:00 Close

Day 2

09:00 Recap
09:10 OpenCL / Directives
10:00 OpenCL or Directives Exercise
11:00 Break
11:30 NVIDIA Volta (Alan Gray NVIDIA)
13:00 Lunch
14:00 CPU Case Study 1
14:30 Tier 2 GPU facilities
15:00 Break
15:20 GPU Case Study 2
16:00 Close


Course materials


Starts 21 Nov 2017 09:00
Ends 22 Nov 2017 17:30
Brunner-Mond lab
Daresbury Science & Innovation Campus, Warrington, WA4 4AD Please report to reception on arrival.
This course is part-funded by the PRACE project and is free to all. Please register using the online form. If you have any questions, please consult the course forum page or contact epcc-support@epcc.ed.ac.uk.