MeluXina: Introduction to GPU Programming with CUDA

Online session

The Luxembourg SuperComputing Competence Center is hosting a half-day online introduction to GPU programming with a CUDA course. The first part will be dedicated to theory, and the second will focus on hands-on challenges on the MeluXina supercomputer GPU accelerators.

For whom? 
Both current or prospective users of large hybrid CPU/GPU clusters and supercomputers who might develop or accelerate their scientific computing using applications that use Nvidia GPUs are encouraged to participate!

What will you learn and how? 
Participants from this course will learn GPU programming using the CUDA programming model, which includes synchronisation, memory allocation, and device and host calls. Furthermore, understanding the GPU architecture and how parallel threads blocks are used to parallelise the computational task. Moreover, the GPU is an accelerator; hence, there must be a good understanding of memory management between the GPU and CPU, which will also be discussed in detail. Finally, participants will also learn to use the CUDA programming model to accelerate linear algebra (routines) and iterative solvers on the GPU. Participants will learn theories first and implement the CUDA programming model with mentors' guidance later in the hands-on tutorial part. 

Learning outcomes 
After this course, participants will be able to:

Understanding the GPU architecture (and also the difference between GPU and CPU)
- Streaming architecture 
- Threads blocks 

Implement CUDA programming model
- Programming structure 
- Device calls (threads block organisation)
- Host calls 

Efficient handling of memory management 
- Host to Device 
- Unified memory 

Apply the CUDA programming knowledge to accelerate examples from science and engineering
- Iterative solvers from science and engineering 
- Vector addition, matrix multiplication, etc. 

Priority will be given to users with good experience with C/C++. No GPU programming knowledge is required.

GPU Compute Resource
Participants attending the event will be given access to the MeluXina supercomputer during the session. To learn more about MeluXina, please consult the Meluxina overview and the MeluXina – Getting Started Guide.

This half-day course will be hosted online (CET time). All communication will be done through Zoom, Slack and email. 

Tuesday, April 30th 2023: 01:00 PM – 05:00 PM 

01:00 PM – 01:45 PM: Lecture Part 1 
01:45 PM – 02:00 PM: Break 1 
02:00 PM – 02:45 PM: Lecture Part 2 
02:45 PM – 03:00 PM: Break 2 
03:00 PM – 04:45 PM: Hands-on lab 
04:45 PM – 05:00 PM: Q & A 

Important: Only limited spots!!! 

Contact people for more information: 
Ezhilmathi KRISHNASAMY, ezhilmathi.krishnasamy[at]uni.lu 
Dzmitry KLIAZOVICH, dzmitry.kliazovich[at]lxp.lu 
Ralf HUSTADT, ralf.hustadt[at]luxinnovation.lu