htw saar Piktogramm
Back to Main Page

Choose Module Version:


Introduction to Parallel Programming with CUDA

Module name (EN): Introduction to Parallel Programming with CUDA
Degree programme: Applied Informatics, Bachelor, ASPO 01.10.2017
Module code: PIB-CUDA
Hours per semester week / Teaching method: 1V+1P (2 hours per week)
ECTS credits: 3
Semester: 5
Mandatory course: no
Language of instruction:
Project work, presentation and composition

[updated 24.02.2018]
Curricular relevance:
DFBI-342 Computer Science and Web Engineering, Bachelor, ASPO 01.10.2018, semester 6, optional course, informatics specific
KI593 Computer Science and Communication Systems, Bachelor, ASPO 01.10.2014, semester 5, optional course, technical
KIB-CUDA Computer Science and Communication Systems, Bachelor, ASPO 01.10.2017, semester 5, optional course, technical
PIBWI39 Applied Informatics, Bachelor, ASPO 01.10.2011, semester 5, optional course, informatics specific
PIB-CUDA Applied Informatics, Bachelor, ASPO 01.10.2017, semester 5, optional course, informatics specific
30 class hours (= 22.5 clock hours) over a 15-week period.
The total student study time is 90 hours (equivalent to 3 ECTS credits).
There are therefore 67.5 hours available for class preparation and follow-up work and exam preparation.
Recommended prerequisites (modules):
Recommended as prerequisite for:
Module coordinator:
Dipl.-Inform. Marion Bohr
Lecturer: Dipl.-Inform. Marion Bohr

[updated 10.11.2016]
Learning outcomes:
CUDA (Compute Unified Device Architecture) is a technology developed by NVIDIA that allows software developers and software engineers to use a CUDA-enabled graphics processing unit for general purpose processing.
After successfully completing this module, students will have received insight into problem solving by means of parallel programming. They will understand the algorithmic basics of parallel programming. Students will be capable of using hardware and software components based on CUDA and demonstrate their use by carrying out clearly defined practical exercises. They will be able to leverage the strengths of a GPU architecture in practice-oriented project work, optimize its performance and analyze the resource requirements of a parallel implementation.

[updated 26.02.2018]
Module content:
* Basics: processes, threads, blocks, warps, memory types, etc.
* Algorithmic basics
* Examples of algorithms and implementations for programs that can and cannot be parallelized
* Runtime measurement, runtime comparison, possibilities for increasing performance
* GPU applications from different subject areas using the example of CUDA

[updated 26.02.2018]
Teaching methods/Media:
Presentation slides, board, exercises

[updated 26.02.2018]
Recommended or required reading:
* The CUDA Handbook: A Comprehensive Guide to GPU Programming, Nicholas Wilt, Addison-Wesley 2013
* CUDA by Example _ An Introduction to General-Purpose GPU Programming, Jason Sanders/ Edward Kandrot, Addison-Wesley 2011
* Programming Massively Parallel Processors _ A Hands-on Approach, David B. Kirk/ Wen-mei W. Hwu, Elsevier-Morgan Kaufmann Publishers 2010

[updated 26.02.2018]
Module offered in:
SS 2020
[Wed Apr 21 22:27:25 CEST 2021, CKEY=keidppm, BKEY=pi2, CID=PIB-CUDA, LANGUAGE=en, DATE=21.04.2021]