GPU Programming Course

Prof. Thomas Brox

In the last couple of years, graphics processors (GPUs) have developed to flexible processing units that can be used for general purpose computing. The highly parallel architecture of todays GPUs often outperforms traditional CPUs for many problems. This is especially true for image processing, where the same task is supposed to be done for each pixel. This allows for making good use of many parallel units.

The goal of this course is to learn how to program GPUs using the CUDA framework. While implementations in CUDA (an extension of C/C++) are not much harder than CPU implementations, the hard part is to make good use of the parallel units and the memory to obtain fast implementations. We will study a number of image processing problems starting with basic ones and then increasing complexity.

In the last part of the course, each student should implement their own small project. You can freely choose the project topic. We will offer some good options.

Code Submission:
(2 SWS)
Fridays, 14hct - 16
Room: Computer Pool 00-029, Building 082
Contact person: Thorsten Falk

Beginning: Friday, April 28th, 2017

ECTS Credits: 4 or 6

Requirements: Fundamental programming skills in C/C++. Some experience with the Linux toolchain (text editor, compiler, linker, debugger) is recommended.

Remarks: The short lectures will be in English. Only if all participants understand German, it will be offered in German.

The course is open to both Bachelor students (for their Bachelor project) and Master students (for their lab course). To reflect the larger experience of Master students, their final project is supposed to include more advanced image processing methodologies and be more research oriented. The final project also provides 4 and 6 ECTS variants of the Bachelor project.


Exercise material: