GPU Programming (RESCHIP4EU) Created byRomane Léauté|UpdatedagoOnlineIn 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 courseThis 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 structureFoundations of Parallel Computing Introduction to GPU Architecture CUDA Programming Fundamentals CUDA Memory Management Synchronisation and Execution Control Case Studies and Further Topics Learning outcomesUpon 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 detailsThe 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 DetailsWebsite linkGPU ProgrammingDigital technology / specialisationMicroelectronicsTraining opportunitiesCourseLearning EffortPart time lightSelf-pacedYesDuration TimeUp to 16 HoursDigital skill levelAdvancedProvider OrganisationPolitecnico di Torino28DIGITALGeographic scope - CountryAustriaBelgiumBulgariaCyprusRomaniaSloveniaCroatiaCzech republicDenmarkEstoniaFinlandFranceGermanyGreeceHungaryItalyIrelandMaltaLatviaLithuaniaLuxembourgNetherlandsPortugalPolandSwedenSpainSlovakiaShow moreShow lessTarget languageEnglishIs this course freeYesCredential offeredDiploma SupplementType of fundingPublicPrerequisitesNoUpcoming courseNoLog in to comment