Please note, session 1 of this workshop has moved to March 9th
Apply for a place at this two-part workshop by registering for the event and answering the questions. Please ensure you use your University email address when registering.
Event description details
Want to learn more about how to write code in Python that can take advantage of graphical processing units (GPUs)? Sign up for this two-part course introducing GPU programming through Python.
In-person: 9th March 2023 in Newcastle
Virtual: 18th April 2023
Pre-requisites:
- Very basic command line
- Comfortable writing basic Python
- Familiarity with NumPy, basic C would be beneficial
You do not require previous experience of:
- using GPUs
- parallel programming experience
Knowledge of basic command line (UNIX shell) usage would be helpful. To refresh your knowledge, please consider registering for our N8 CIR Unix Shell workshop on February 14.
Session 1: 9th March 2023 (in person)
This session will introduce basic concepts around what is a GPU and introduce some existing Python packages that we can use to allow us to take advantage of GPUs. The course will be an hands-on, in person delivered workshop allowing you to get to grips actually writing GPU accelerated Python.
Topics covered include:
- What is a GPU
- Differences between CPU and GPU
- Introduction to CuPy
- Example convolution using the GPU
- Running NumPy on the GPU
- Using Numba to run Python code on the GPU
- Introduction to CUDA, writing your first kernel
Session 2: 18th April 2023 (virtual)
This session will recap some basic concepts around GPUs and start to explore more advanced topics around using CUDA. The course will be an hands-on, virtual workshop allowing you to get to grips actually writing GPU accelerated Python.
Topics covered include:
- Recap of GPUs and CUDA
- Shared memory and synchronisation on the GPU
- Constant memory on the GPU
- Concurrent execution of multiple kernels on the GPU
Agenda
Session 1: 28th February (in person)
10:00 Introduction
10:20 Using your GPU with CuPy
11:00 Break
11:10 Using your GPU with CuPy (cont.)
12:00 Lunch
13:00 Accelerate your Python code with Numba
14:30 Break
14:40 Your First GPU Kernel
16:00 Close
Session 2: 14th April (virtual)
10:00 Welcome and recap
10:20 Your First GPU Kernel
11:00 Break
11:10 Registers, Global, and Local Memory
12:00 Lunch
13:00 Shared Memory and Synchronization
14:30 Break
14:40 Constant Memory
15:00 Concurrent access to the GPU
16:00 Close