12 February 2024
Streamed
Application deadline:
29 January 2024
Cancellation deadline:
29 January 2024
Rubén Cabezon, Aurélien Cavelan, Thomas Sakoparnig, Wandrille Duchemin
Programming and Computing Techniques
Beginner
Academic: 100 CHF
For-profit: 500 CHF


Next course(s):
11 - 12 Feb 2025 Streamed

This course is now full with a waiting list.

Overview

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.

Audience

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

Prerequisites

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.

Technical

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

Application

The registration fees for academics are 100 CHF and 500 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.

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

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.

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: Diana Marek, 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.