The Luxembourg SuperComputing Competence Center will host a half-day online course introducing GPU Programming using CUDA. The course will be divided into two parts: the first will cover theoretical concepts, while the second will focus on practical, hands-on challenges using the MeluXina supercomputer.
For whom?
Both current and prospective users of large hybrid CPU/GPU clusters and supercomputers, who may develop or parallelize their scientific computing applications using multicore CPUs, 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. Additionally, they will gain an understanding of 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 completing this course, participants will be able to:
Understand the GPU architecture (and also the difference between GPU and CPU)
o Streaming architecture
o Threads blocks
Implement CUDA programming model
o Programming structure
o Device calls (threads block organisation)
o Host calls
Efficiently handle memory management
o Host to Device
o Unified memory
Apply the CUDA programming knowledge to accelerate examples from science and engineering
o Iterative solvers from science and engineering
o Matrix multiplication, vector addition, etc
Prerequisites
Priority will be given to users with good experience with C/C++. No GPU programming knowledge is required. However, knowing some basic parallel programming concepts are advantage but not necessary.
GPU Compute Resource
Participants attending the training will be given access to the MeluXina supercomputer during the session. For more information about MeluXina, please refer to the Meluxina overview and the MeluXina – Getting Started Guide.
Agenda
This half-day course will be hosted online in Central European Time (CET). All communication will be conducted via Zoom, Slack, and email.
Schedule
1:00 PM – 1:45 PM: Lecture Part 1
1:45 PM – 2:00 PM: Break
2:00 PM – 2:45 PM: Lecture Part 2
2:45 PM – 3:00 PM: Break
3:00 PM – 4:45 PM: Hands-on lab
4:45 PM – 5:00 PM: Q&A
Two sessions are planned:
• January 21st, 2025 - 1:00 PM – 5:00 PM CET
• June 24th, 2025 - 1:00 PM – 5:00 PM CET
Important: Limited spots available!
Contact person for more information:
Ezhilmathi KRISHNASAMY, ezhilmathi.krishnasamy[at]uni.lu