14 February 2023
Application deadline:
07 February 2023
Cancellation deadline:
07 February 2023
Rubén Cabezon, Aurélien Cavelan, Thomas Sakoparnig, Wandrille Duchemin
Programming and Computing Techniques
Academic: 60 CHF
For-profit: 300 CHF

Next course(s):
12 Feb 2024 Streamed


We currently live in an era where most computers possess multiple computing units, and where parallelization is key. In particular, GPGPUs (General Purpose Graphical Processing Units) are built for massive parallelism and they have recently risen to prominence as they are now used for many scientific tasks, such as physics or biological simulations, statistical inference or machine learning.

In this crash course we will focus on CUDA as well as several CUDA-based API, including openMP GPU offloading and python APIs. Through concrete examples we will describe the principles at the core of a successful parallelization attempt.


This course is intended for programmers and computational biologists who want to take their first steps with GPU programming.

We will assume no previous knowledge of GPU programming, CUDA, or parallelization techniques, but we require that the participant be proficient in at least one language among python or C++.

Learning outcomes

By the end of the course, the participant will be able to:

  • identify good candidates tasks for GPU acceleration
  • understand the structure of a GPU, including memory handling
  • perform some computations on a GPU, using either python or C++
  • manage memory transfers to the GPU for better performances
  • evaluate their GPU code using profiling


Knowledge / competencies

Participants should be comfortable working in a Linux/UNIX environment and have some basic experience in programming. Some knowledge of C/C++, Fortran or Python is necessary.


You are required to work on your own laptop with an Internet connection. The computer you use for the practicals should be the same as the one you use to connect to the course zoom room (in order for us to help you debug your code during practicals).

Schedule - CET time zone

Tentative program

Morning 9:00 -12:00

  • Introduction: what is a GPU?
  • What problems can it solve? And how to use it?
  • First real life examples and practical

Lunch break : 12:00 - 13:00

Afternoon 13:00- 17:00

  • Real life examples, and random number generation on a GPU
  • Common pitfalls in GPU programming
  • Memory management on a GPU
  • GPU monitoring
  • Practical


The registration fees for academics are 60 CHF and 300 CHF for for-profit companies.

While participants are registered on a first come, first serve basis, exceptions may be made to ensure diversity and equity, which may increase the time before your registration is confirmed.

You will be informed by email of your registration confirmation. Upon reception of the confirmation email, participants will be asked to confirm attendance by paying the fees within 5 days.

Applications will close as soon as the places will be filled up. Deadline for free-of-charge cancellation is set to 07/02/2023. Cancellation after this date will not be reimbursed. Please note that participation in SIB courses is subject to our general conditions general conditions.

Venue and Time

This course will be streamed using Zoom.

It will start at 9:00 and end around 17:00 CET.

Precise information will be provided to the participants before the course.

Additional information

Coordination: Monique Zahn, SIB Training Group.

You are welcome to register to the SIB courses mailing list to be informed of all future courses and workshops, as well as all important deadlines using the form here.

Please note that participation in SIB courses is subject to our general conditions.

SIB abides by the ELIXIR Code of Conduct. Participants of SIB courses are also required to abide by the same code.

For more information, please contact training@sib.swiss.