Introduction to GPU Programming for Life Sciences
29 January 2024
29 January 2024
For-profit: 500 CHF
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.