18 Apr 2023
19 Apr 2023
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 obtain 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.
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 participant should:
- be familiar with Python
- be comfortable working in Jupyter
- have the ability to read and understand C code.
- knowledge of NumPy
- familiarity with high-performance computing concepts
- 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
This training will take place in-person at the eScience Center, Science Park 402, Amsterdam. Please note that lunch and drinks at the end of the workshop are included.