GPU Programming
Start Date
6 Nov 2023
Start Time
09:30 Europe/Amsterdam
Location
Amsterdam
Date End
7 Nov 2023
End Time
17:00 Europe/Amsterdam

From deep learning to high-performance computing, Graphics Processing Units (GPUs) are nowadays an important tool for scholars and research software engineers alike. Parallel in nature, they offer incredible computing capabilities that just a few years ago were only available in supercomputers. While using GPUs to accelerate computation becomes easier year after year, obtaining high performance from these devices still requires some knowledge of how they work, and the programming model on which they are based.
In this workshop we will provide the learners with the fundamental knowledge that they need to start their journey into the world of programming GPUs. After a brief introduction to the specificities of GPUs, and how they differ from traditional processors, participants will experience various ways of using them with Python. They will get familiar with libraries such as CuPy and Numba to accelerate Python code, and have first-hand experience in writing small CUDA programs that can run directly on the GPU.
The workshop is based on the teaching style of the Carpentries, and learners will follow along while the instructors write the code on screen. More information can be found on the workshop website.
Who
The workshop is open and free to all researchers in the Netherlands at PhD candidate level and higher. We do not accept registrations by Master students. The workshop is aimed at PhD candidates and other researchers or research software engineers.
Prerequired knowledge
The participant should:
- be familiar with Python
- be comfortable working in Jupyter
- have the ability to read and understand C code
Preferred:
- knowledge of NumPy
- familiarity with high-performance computing concepts
Syllabus
- accelerate NumPy primitives with CuPy
- accelerate Python code with Numba
- learn the basics of CUDA
- use CuPy to execute CUDA code in Python
- understand the different CUDA memories
- thread synchronization in CUDA
- overlapping computation and communication
Where
This training will take place in-person at the eScience Center, Science Park 402, Amsterdam.