Building on CuPy, the course then introduces CUDA programming through Numba CUDA. CUDA is a parallel computing platform and programming model that allows developers to use NVIDIA GPUs for general-purpose computation. Numba CUDA allows developers to write custom CUDA kernels in Python that can be compiled and executed on the GPU. Topics include CUDA kernels, threads, blocks, grids, thread indexing, and kernel compilation.
The training covers two main approaches:
|
|
Participants will also learn when GPU acceleration is useful and when it may not provide a performance benefit.
All code used in the training will be executed on MeluXina, Luxembourg’s national supercomputer. Participants will therefore also learn how to request GPU resources.
Participants will discover MeluXina and how to execute CUDA Python programs using Slurm.
Participants will learn how to:
- ▸Understand the difference between CPU and GPU computing.
- ▸Identify workloads that can benefit from GPU acceleration.
- ▸Use CuPy as a GPU-accelerated alternative to NumPy.
- ▸Move data between the CPU and GPU.
- ▸Compare the performance of CPU, CuPy, and custom CUDA kernel implementations.
- ▸Understand the CUDA programming and execution model.
- ▸Understand kernels, threads, blocks, and grids.
- ▸Write and launch custom CUDA kernels with Numba CUDA.
- ▸Use thread indexing to parallelise array and vector operations.
- ▸Understand data movement between host and device.
- ▸Recognise common issues in GPU programming.
- ▸Request GPU resources on MeluXina.
- ▸Run CUDA Python applications through Slurm.
Samir El-Amrany Doctoral researcher Department of Computer Science, University of Luxembourg Mr El-Amrany leads this training session and is your point of contact for any questions about the content. |
| 13:00 – 13:15 | Welcome and introduction |
| 13:15 – 14:45 | Setup and mental model: Understand CPU, GPU, CUDA, host/device, data transfer, and environment options. Introduction to CUDA Python: Understand what CUDA Python means and how Python can use NVIDIA GPUs. NumPy workflows with CuPy: Move from CPU NumPy arrays to GPU CuPy arrays and reason about transfer costs. |
| 14:45 – 15:00 | Coffee break |
| 15:00 – 16:45 | Simple CPU vs GPU comparison: Benchmark CPU and GPU code correctly and interpret the results. Numba / Numba-CUDA basics: Write and launch a first simple CUDA kernel in Python. |
| 16:45 – 17:00 | Q&A session |
Who should attend? This training is intended for students, researchers, engineers, data scientists, and developers who use Python and want to learn how to accelerate their applications using NVIDIA GPUs. |
Prerequisites? No prior experience with CUDA is required. Basic knowledge of Python and NumPy is sufficient to follow the course. |





