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-threadingMutual exclusionCode examples

Week 4:

Code example

Week 5:

Producer/consumer problem code (partial implementation)

Week 6:

Performance analysis of parallel programsProducer/consumer problem code

Week 7:

Performance analysis of reduction and merge sort

Week 8:

Higher level parallelismCode examples

Week 9:

Introduction Cuda programmingCode examples

Week 9:

More Cuda and stream programming

Week 10:

Cuda memory hierarchy

Week 11:

Occupancy and performance optimization

Week 12:

Optimization of reductionReduction code examples


Tutorials


Week 1:

TaskSkeleton codeSolution code

Week 2:

TaskSkeleton codeSolution code

Week 3:

no tutorial (holiday)

Week 4:

TaskSkeleton codeNotes on floating point numbersSolution code

Week 5:

TaskSkeleton codeSolution code

Week 6:

Task

Week 7:

TaskSkeleton codeSolution code

Week 8:

TaskSolution code

Week 9:

TaskSkeleton codeSolution code

Week 10:

TaskSkeleton codeSolution code

Week 11:

TaskSkeleton codeSolution code

Week 12:

Extension of last week.

Week 13:

TaskSkeleton code


Assignments


Assignment 1Skeleton code

Assignment 2Skeleton code

Assignment 3Skeleton code

Assignment 4Skeleton code


Literature