HPC5: Introduction to GPU programming with CUDA

Booking for this course is through the IT Training Unit. Click here to book

Workshop content

In this workshop, you will learn the fundamentals of parallel computing with GPUs and the CUDA programming environment. Our latest HPC cluster (ARC3) has 24 NVIDIA P100 GPUs and 4 NVIDIA K80 GPUs which can be used to run existing code optimised for GPUs, run new code developed using the CUDA or OpenCL programming models or to run applications on top of GPU optimised frameworks, such as machine learning or deep learning models. Programming examples in this workshop will be in C with some later examples in Python.

At the end of the workshop, attendees will be able to:

  • An introduction to the GPU hardware model

  • Multithreading and the concept of the ‘Streaming Multiprocessor’

  • GPU memory and launching CUDA kernels

  • CUDA C programming examples with vectors and matrices

  • Hints and tips to CUDA parallelise existing serial code

  • Optimising code

  • PyCUDA: CUDA programming for Python


We recommend that attendees have a working knowledge of the Unix shell, some ability to program in C and Python and can compile C and Fortran codes. This is not an introductory programming course. If you need to learn how to program, please attend one of the SWD1 programming courses.


1 day


This workshop usually runs twice each academic year.

If you would like a bespoke version of this course run in your department then please contact us.


All research staff and students.