owned this note
owned this note
Published
Linked with GitHub
# N8 GPU Python Workshop
Rough hackpad for N8 CIR GPU Python workshop based on [Carpentries Incubator lesson](https://carpentries-incubator.github.io/lesson-gpu-programming/).
## Format
Previous discussion suggested this workshop should be delivered in 2 parts:
1. In person 28th February 2023 in Newcastle
2. Virtual 18th April 2023
## Agenda
### In person
| Time | Agenda |
| --------- | ----------------------------------------------------------------- |
| 10:00 | Introduction |
| 10:20 | [Using your GPU with CuPy](https://carpentries-incubator.github.io/lesson-gpu-programming/02-cupy/index.html) |
| 11:00 | Break |
| 11:10 | [Using your GPU with CuPy](https://carpentries-incubator.github.io/lesson-gpu-programming/02-cupy/index.html) (cont.) |
| 12:00 | Lunch |
| 13:00 | [Accelerate your Python code with Numba](https://carpentries-incubator.github.io/lesson-gpu-programming/03-numba/index.html) |
| 14:30 | Break |
| 14:40 | [Your First GPU Kernel](https://carpentries-incubator.github.io/lesson-gpu-programming/05-first_program/index.html) |
| 16:00 | Close |
## Virtual
| Time | Agenda |
| --------- | ----------------------------------------------------------------- |
| 10:00 | Welcome and recap |
| 10:20 | [Your First GPU Kernel](https://carpentries-incubator.github.io/lesson-gpu-programming/05-first_program/index.html)
| 11:00 | Break |
| 11:10 | [Registers, Global, and Local Memory](https://carpentries-incubator.github.io/lesson-gpu-programming/06-global_local_memory/index.html) |
| 12:00 | Lunch |
| 13:00 | [Shared Memory and Synchronization](https://carpentries-incubator.github.io/lesson-gpu-programming/07-shared_memory_and_synchronization/index.html) |
| 14:30 | Break |
| 14:40 | [Constant Memory](https://carpentries-incubator.github.io/lesson-gpu-programming/08-constant_memory/index.html) |
| 15:00 | [Concurrent access to the GPU](https://carpentries-incubator.github.io/lesson-gpu-programming/09-streams/index.html) |
| 16:00 | Close |
## Notes
- AC, to check if code works on Bede and Colab (fall back)
- 5/6 helpers, 1 Durham, 2 Leeds, 1/2 Newcastle, GS to ask at Manchester, MW to ask York
- Samantha Finnigan and Dmitry Nikolaenko from Durham agreed to help out
- AC to write short decription to Grainne (tell them what they need to be familiar with, do knows, do not knows).
- Eventbrite, one event, 3 options, preference to those who book both
- Catering for Grainne
- January 23rd deadline to getting helpers and AC to arrange pre call
- Accessibility: Accessible room booking, subtitles for call, registration asks for accessibility needs
- JS to sort room booking
- 23rd January org team catch up
## Event description details
Title: Python GPU Programming Workshop
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.
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
Session 1: 28th February 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
### Meeting 2023-01-23
#### Actions recap
- 2 helpers from Durham, haven't asked York (no need)
- samantha.finnigan@durham.ac.uk
- dmitry.nikolaenko@durham.ac.uk
- Patricia Ternes Dallagnollo
- Jannetta Steyn
- Alex Coleman (presenting)
- Ian Hinder (Manchester), ian.hinder@manchester.ac.uk
- To invite to next meeting
- GW: 83 people applied
- GS: No manchester volunteers
- JS: Venue booked, in a computer suite
- JS: to confirm additional
#### Core questions
- Do we create a carpentries website for the course?
JS: normally does this for courses
MW: Be good to do this for both courses
JS: ACTION: to create website and share back, also register course with carpentries
- Do we need another room for food?
JS: To check
MW: Is there space around the room
- Do we use colab or bede? Is possible on Bede with additional setup
MW: Would be great if they could do it on Bede
MW: Could use inference nodes
Use colab, but show it can be done on Bede
- Do we record/share materials?
AC: Will share materials
JS: Recording in person is difficult
- Do we have enough helpers?
AC: Could do with one more?
JS: To ask in Newcastle (ACTION: get back to by next week)
AC: To organise a pre call for helpers
- Closing date
MW: When is closing date? And how do we whittle down?
GW: 14th Feb, check reasons provided, both events get priority
GW: Do we need email addresses provided?
AC: No, but can you send out a pre course prep email (need google account, carpentries code of conduct)?
GW: Yes, will contact you when we close registrations and confirm attendees
#### AOB
- Any other actions?
- Claiming back for helpers?
MW: Claim through institution and institutions claim back annually from N8 CIR
GW: ACTION: To email alex process for claiming back