News
Lectures
Tutorials
Assignments
Literature
Christian Lessig
GPU Programming
Fall/Winter 2019, Otto-von-Guericke Universität Magdeburg
Details:
Vorlesungsverzeichnis
Lecturer:
Christian Lessig
Lectures: Tuesdays, 11:00-13:00, G29-E035
Tutorials: Wednesdays, 15:00-17:00; Thursdays, 11:00-13:00; G29-426
Content:
The course provides an introduction to GPU programming for general purpose applications. It also covers the fundamentals of parallel programming.
News
The oral exams will take place in G29-224.
There is no tutorial on 23/1 (but on 22/1, so you can come to this one).
The fourth assignment is online. Due 28/1/2020.
The third assignment is online. Due 7/1/2020.
The second assignment is online. Due 1/12/2019.
The first assignment is online. Due 10/11/2019.
Classes will start 15/10/2018, tutorials on 16/10/2018. Please see the LSF for details.
Lectures
Week 1:
Introduction
Week 2:
Why parallelism?
Taxonomy of parallel architectures
Week 3:
Multi-threading
Mutual exclusion
Code examples
Week 4:
Code example
Week 5:
Producer/consumer problem code (partial implementation)
Week 6:
Performance analysis of parallel programs
Producer/consumer problem code
Week 7:
Performance analysis of reduction and merge sort
Week 8:
Higher level parallelism
Code examples
Week 9:
Introduction Cuda programming
Code examples
Week 9:
More Cuda and stream programming
Week 10:
Cuda memory hierarchy
Week 11:
Occupancy and performance optimization
Week 12:
Optimization of reduction
Reduction code examples
Tutorials
Week 1:
Task
Skeleton code
Solution code
Week 2:
Task
Skeleton code
Solution code
Week 3:
no tutorial (holiday)
Week 4:
Task
Skeleton code
Notes on floating point numbers
Solution code
Week 5:
Task
Skeleton code
Solution code
Week 6:
Task
Week 7:
Task
Skeleton code
Solution code
Week 8:
Task
Solution code
Week 9:
Task
Skeleton code
Solution code
Week 10:
Task
Skeleton code
Solution code
Week 11:
Task
Skeleton code
Solution code
Week 12:
Extension of last week.
Week 13:
Task
Skeleton code
Assignments
Assignment 1
Skeleton code
Assignment 2
Skeleton code
Assignment 3
Skeleton code
Assignment 4
Skeleton code
Literature
M. D. McCool, J. Reinders, and A. Robison, Structured parallel programming: patterns for efficient computation. Elsevier/Morgan Kaufmann, 2012
J. Sanders and E. Kandrot, CUDA by example: an introduction to general-purpose GPU programming, Addison-Wesley, 2011
D. Kirk and W.-m. Hwu, "Programming massively parallel processors", Elsevier/Morgan Kaufmann, 2013
CUDA programming guide, NVIDIA, 2016
J. L. Hennessy and D. A. Patterson, Computer architecture: a quantitative approach, Seventh ed. Morgan Kaufmann, 2017.