htw saar
Back to Main Page

Choose Module Version:

flag

Introduction to Parallel Programming with CUDA

Module name (EN): Introduction to Parallel Programming with CUDA
Degree programme: Computer Science and Web Engineering, Bachelor, ASPO 01.10.2018
Module code: DFBI-342
Hours per semester week / Teaching method: 1V+1P (2 hours per week)
ECTS credits: 3
Semester: 6
Mandatory course: no
Language of instruction:
German
Assessment:
Project work, presentation and composition
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
Workload:
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):
None.
Recommended as prerequisite for:
Module coordinator:
Dipl.-Inform. Marion Bohr
Lecturer: Dipl.-Inform. Marion Bohr

[updated 06.03.2017]
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]
[Sun May 31 06:32:27 CEST 2020, CKEY=keidppm, BKEY=dfi2, CID=DFBI-342, LANGUAGE=en, DATE=31.05.2020]