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


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