GPU Programming

Start Date

6 Nov 2023

Start Time

09:30 Europe/Amsterdam



End Date

7 Nov 2023

End Time

17:00 Europe/Amsterdam

GPU Programming


November 6 - 09:30 am


November 7 - 05:00 pm

Event Category:


Click to Register:

eScience Center Digital Skills Programme


Netherlands eScience Center

402 Science Park, 1098 XH Amsterdam

Amsterdam, NH, NL, 1098 XH

This workshop covers the basic concepts and tools needed to program GPUs using Python and CUDA.

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.


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


  • 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
  • overlapping computation and communication


This training will take place in-person at the eScience Center, Science Park 402, Amsterdam.