Skip to main content

GPU Programming (RESCHIP4EU)

Online

In today’s data-driven world, the demand for computational power is rapidly outpacing what traditional CPUs can deliver. High-Performance Computing (HPC) and Graphics Processing Units (GPUs) have become essential tools for tackling complex scientific, engineering, and artificial intelligence challenges that require massive parallelism and accelerated processing. As industries and research fields - from climate modelling to genomics, finance, and AI - continue to generate ever-larger datasets and more sophisticated models, the ability to harness the full potential of modern hardware is a critical skill for both students and professionals.

About this course

This module developed by Politecnico di Torino, comprehensively introduces the Graphics Processing Unit (GPU), problem-solving, and High-Performance Computing (HPC) programming techniques. It begins with fundamental concepts of parallel programming and C++ parallel features, transitions to understanding modern NVIDIA GPU architectures, and then delves deeply into the CUDA programming model. Key topics include writing basic CUDA kernels, managing the GPU memory hierarchy for optimal performance, handling thread synchronisation, and applying these concepts to solve classical computational problems. The course emphasises practical application through examples and hands-on exercises. 

Module structure

  • Foundations of Parallel Computing 
  • Introduction to GPU Architecture  
  • CUDA Programming Fundamentals 
  • CUDA Memory Management  
  • Synchronisation and Execution Control 
  • Case Studies and Further Topics 

Learning outcomes

Upon successful completion of this course, learners will be able to: 

  • Explain the fundamental concepts of parallel computing and the motivation for using GPUs. 
  • Describe modern NVIDIA GPU architectures' key components, characteristics, and memory hierarchy.
  • Understand the CUDA programming model (Kernels, Threads, Blocks, Grids). 
  • Write, compile, and execute basic CUDA C++ programs. 
  • Effectively allocate and transfer data between the CPU (host) and the GPU (device). 
  • Analyse and optimise GPU memory access patterns (coalescing, shared memory usage, bank conflicts). 
  • Implement correct synchronisation between CUDA block threads using and handling potential race conditions. 
  • Apply CUDA programming techniques to implement parallel solutions for classical computational problems (e.g., vector addition, matrix multiplication, prefix sum). 
  • Understand the concept of asynchronous execution using CUDA Streams. 
  • Utilise basic CUDA libraries and profiling tools.

Further details

The course is developed within the framework of the RESCHIP4EU project, supported by the Digital Europe Programme of the European Union. RESCHIP4EU aims to support the excellence of EU higher education around embedded systems design in a holistic way, from silicon via System-on-Chip design and manufacturing to smart and safety-critical platform and application software. 

More information about the training module "GPU Programming" is available on this page.  

Training Offer Details

Digital technology / specialisation
Training opportunities
Course
Learning Effort
Part time light
Self-paced
Yes
Duration Time
Up to 16 Hours
Digital skill level
Provider Organisation
Geographic scope - Country
Austria
Belgium
Bulgaria
Cyprus
Target language
English
Is this course free
Yes
Credential offered
Diploma Supplement
Type of funding
Public
Prerequisites
No
Upcoming course
No