GPU Programming
Fall/Winter 2017/2018, Otto-von-Guericke Universität Magdeburg
Details:
Vorlesungsverzeichnis
Lecturer:
Christian Lessig
Lectures: Tuesdays, 11:00-13:00, G29-E037
Tutorials: Wednesdays, 9:00-11:00, 11:00-13:00, G29-426
- The oral exams are in G29-224.
- In preparation for the exam there will be a Question and Answer session on Tuesday, 06/02/2018, at 11:15.
- The documentation for the projects is due 04/02/2018 at 23:59.
- The start time for the project presentations has been changed to 9:300, that is these will take place 30/01/2018 from 9:30 - 13:00 in G29-E037.
- Project presentations will be 30/01/2018 from 9:30 - 13:00 in G29-E037.
- Oral exams are on 9/2/2018 and 12/2/2018. Please sign up in the ISG admin office (G29-218).
- There will be tutorials on 1/11/2017.
- Sign up for the tutorials is now possible in the LSF (until Sunday night).
- The first lecture is on 10.10. Tutorials begin the following week.
Week 1:
Introduction
Week 2:
Why parallelism?
A taxonomy of parallelism
Week 3:
Thread parallelism
Why is parallel programming hard?
Week 4:
Higher-level parallelism
Code
Week 5:
Analysis and models of parallel programs
Week 6:
Analysis of merge sort
Week 7/8:
Data parallel co-processors
Week 9:
Cuda: nitty details
Week 10:
Reduction
Week 2:
Task
Skeleton code
Solution
Solution code
Week 3:
Task
Skeleton code
Solution code
Week 4:
Task
Skeleton code
Note on floating point numbers
Solution code
Week 4:
Task
Skeleton code
Solution code
Week 5:
Task
Skeleton code
Solution code
Week 6:
Task
Solution code
Week 7:
Task
Skeleton code
Solution code
Week 8:
Task
Skeleton code
Solution code
Week 9:
Task
Skeleton code
Solution code
Week 2:
T. H. Myer and I. E. Sutherland,
On the design of display processors, Commun. ACM, vol. 11, no. 6, pp. 410–414, Jun. 1968.
Week 2:
E. A. Lee,
The Problem with Threads, Computer, vol. 39, no. 5, pp. 33–42, May 2006.
Week 3:
M. Dubois, C. Scheurich, and F. A. Briggs,
Synchronization, coherence, and event ordering in multiprocessors, Computer, vol. 21, no. 2, pp. 9–21, Feb. 1988.
Week 5:
H. Sutter and J. Larus,
Software and the concurrency revolution, Queue, vol. 3, no. 7, p. 54, Sep. 2005.
Week 6:
B. Khailany, W. J. Dally, U. J. Kapasi, P. Mattson, J. Namkoong, J. D. Owens, B. Towles, A. Chang, and S. Rixner,
Imagine: media processing with streams, IEEE Micro, vol. 21, no. 2, pp. 35–46, 2001.
Week 8:
I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan,
Brook for GPUs: stream computing on graphics hardware, ACM Trans. Graph., vol. 23, no. 3, pp. 777–786, 2004.
Week 9:
M. Harris, S. Sengupta, and J. D. Owens,
Parallel Prefix Sum (Scan) with CUDA, in GPU Gems 3, H. Nguyen, Ed. Addison Wesley, 2007.
Slides
Project descriptions
Rules
- 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