eventIntroduction to GPU Programming (S)
person Ahmed Mohamed Fathy Mohamed Ahme Elbossily

Nächster Termin: Am 14. Oktober um 10:15 Uhr
Diese Veranstaltung stammt aus dem Wintersemester 2026/2027!

Termine

wöchentlich | Mittwoch | 10:15 - 11:45 | 12.10.2026 - 29.01.2027 | C 12.111 Seminarraum

Studienplankontext

Kombinierte wissenschaftliche Arbeit
presentation during seminar (50%)
GPU programme with a report (50%)
Prüfungstermin: Montag, 15.03.2027
Wiederholungstermin: Zu dieser Prüfung wird kein Wiederholungstermin angeboten, da sie didaktisch untrennbar mit einer der zugeordneten Lehrveranstaltungen verbunden ist. Die Wiederholung der Prüfungsleistung ist somit erst bei erneutem Modulangebot möglich.
Anzeige von Anmeldebeginn und -ende systembedingt. Selbständige Anmeldung nur zum Prüfungstermin und nicht zum Wiederholungstermin möglich.

Organisatorisches

Seminar
Vollständig Präsenz
2
zentrales Losverfahren im Cluster (mit Teilnehmerbegrenzung)
35

Anmeldung

zentrales Losverfahren im Cluster (mit Teilnehmerbegrenzung)

Die Anmeldung beginnt erst am 02.10.2026 um 08:00 Uhr. Sie endet am 12.10.2026 um 23:59 Uhr.

Diese Veranstaltung gehört zum Cluster »Komplementärstudium«.

In diesem Cluster ist während der Losphasen eine Wahlmöglichkeit zugelassen.
Und in der Entscheidungsphase 3 Wahlmöglichkeiten.

Inhaltliches

Englisch
Introduction to GPU Programming
keine

This course is designed to teach students how to leverage the power of Graphics Processing Units (GPUs) through parallel programming. Traditionally, programs utilize the CPU as the primary unit for execution. In this course, students will learn how to run programs on a GPU and observe the significant difference in processing speed. Initially, GPU cards were used exclusively for video rendering and gaming. However, with the advent of GPU programming, we can now make our programs run faster!

C++ programming language will be used for creating GPU programs in this course. The first two modules will provide students with a strong foundation in C++ programming. Then, students will apply their C++ knowledge to work with CUDA and execute programs on a GPU.

At the end of each module, there will be a project designed to reinforce the concepts learned by students. To ensure the course's generality, these projects will focus on image-processing tasks, such as image coloring and blurring. After all, who doesn’t enjoy working with images!

Module 1: C++ Fundamentals
Topics:
* Basic syntax: data types, control flow, functions
* Containers: `std::vector`, `std::map`
* File I/O
* Introduction to OpenCV for image load/display
Project #1:
Build a program for image converter: load a color image,
convert to grayscale, save the result.
-------------------------------------------------------------------------------------------
Module 2: Memory Management
Topics:
* Stack vs. heap memory model
* Dynamic allocation: `new/delete` and `malloc/free`
* Common pitfalls: Memory leaks
Project #2:
Extend Project #1 into a mini “Image Editor” that applies
two operations—grayscale and Gaussian blur—with
user-specified parameters.
-------------------------------------------------------------------------------------------
Module 3: GPU Programming with CUDA
Topics:
* CUDA programming model: kernels, threads, blocks, grids
* Host vs. device memory; data transfers
* Simple reduction operations on GPU
Project #3:
Port your blurring operation to CUDA. Load the image on
the host, copy it to device memory, launch a blur kernel,
copy back, and save. Benchmark CPU vs. GPU runtimes.
-------------------------------------------------------------------------------------------
Module 4: GPU Hardware & Optimization
Topics:
* GPU architecture deep dive: SMs, warps
* Memory hierarchy: shared and global memory
* Coalesced Memory accesses
Project #4:
Students will revisit the previous projects, applying the
knowledge of GPU data communication to further
accelerate program speed.

You will learn a programming language which is an essential skill you have to have nowadays. Moreover, once you learn C++, learning other programming languages will become much easier. Additionally, you will delve into the advanced topic of GPU programming, a key factor behind the rapid advancements in AI applications we see today. Without GPU programming, many of these innovations would not be possible.

“No prior programming skills are required.”

Evaluation

Die Lehrveranstaltung ist derzeit nicht zur Evaluation angemeldet.

Weitere Informationen zur Lehrevaluation: https://www.leuphana.de/lehre/qualitaetsmanagement/evaluation/lehrveranstaltungsevaluation.html

DE | EN
IMPRESSUM
GET SUPPORT!