Kursöversikt
Instructors
Stefano Markidis, Steven W. D. Chien and Nikolaos Vassardanis
Examiner
Erwin Laure
Course Description
This course provides a broad introduction to GPU programming with an emphasis on application development.
The course is divided into four modules:
- GPU architecture
- Programming Computation on GPU with CUDA
- Programming Graphics on GPU with OpenGL
- Project work
The course will possibly also discuss additional selected topics, such as OpenACC, OpenCV, …
In this course, we are going to use the flipped classroom approach:
- Study the lecture material at home: watch video lectures, read articles and additional material, self-assess your knowledge with practice quizzes, …
- Do the assignments in class, in this case, lab session, with other students and instructors.
Logistics
Activities
Activity |
Compulsory |
Graded / Non-Graded |
Video Lectures |
Compulsory |
Non-Graded |
Quizzes |
Compulsory |
P/F (Need to have 80%) |
Readings |
Recommended |
Non-Graded |
Lab attendance |
Highly Recommended |
Non-Graded |
4 Assignments |
Compulsory |
Graded: P/F |
Project Work |
Compulsory |
Graded: A-F |
Prerequisites
- Basic knowledge of C or C++, compiling codes and Linux commands
- Basic knowledge of computer architecture
We will have compulsory non-graded quizzes to self-assess your knowledge of such topics.
Agenda
Date and time |
Room |
Topic |
Tue 10/29 10 – 12 |
D33 |
Presentation of the course - Lecture |
Thu 31/10 13 – 16 |
5V4 Magenta |
Lab1 –STREAM on Tegner – Work on Ass.1 |
Tue 11/5 9 – 12 |
5V4 Magenta |
Work on Assign. 2 (Basic CUDA) |
Thu 11/7 14 - 17 |
4V6 Brun |
Work on Assign. 2 (Basic CUDA) |
Tue 11/12 9-12 |
5V4 Magenta |
Work on Assign. 3 (Advanced CUDA) |
Thu 11/14 13 – 16 |
5V4 Magenta |
Work on Assign. 3 (Advanced CUDA) |
Thu 11/21 13 – 16 |
5V4 Magenta |
Work on Assign. 3 (Advanced CUDA) |
Mon 11/28 13 – 16 |
5V4 Magenta |
Work on Assign. 4 (OpenACC) |
Tue 12/3 10 – 12 Tue 12/6 13 – 15 |
E53 E31 |
Project Description + Discussion Q&A about final project |
Thu 12/5 13 – 16 Tue 12/10 9 – 12 |
5V4 Magenta |
Project Work |
Lab sessions
- Attendance of lab sessions is highly recommended.
- Use the lab and discussion sessions to work with other students and instructors on the assignments
Course material
- Slides, papers, video lectures and course material to complete the assignments will be progressively posted in Canvas (https://kth.instructure.com/courses/12406).
-
Textbooks:
- CUDA for Engineers by Duane Storti and Mete Yurtoglu
-
- Programming Massively Parallel Processors by David Kirk and Wen-mei W. Hwu
Assignments
Assignments to be uploaded to Canvas as .pdf files
Submission Deadline |
Individual/Team |
Grading |
Topic |
Sun 11/3 11.49 PM CET |
Group of 2 |
P/F |
GPU Architecture |
Sun 11/10 11.49 PM CET |
Group of 2 |
P/F |
Basic CUDA |
Sun 11/24 11.49 PM CET |
Group of 2 |
P/F |
Advanced CUDA Need to use Tegner for MultiGPU exercise |
Sun 12/1 11.49 PM CET |
Group of 2 |
P/F |
OpenACC – Need to use Tegner |
Wed 12/8 11.49 PM CET |
Group of 2 |
P/F |
Project design document |
Tue 1/14 11.49 PM CET |
Group of 2 |
A-F |
Final project report |
- It is your choice if you want to use your laptop GPU, lab computer GPU or Tegner GPU
- OpenACC assignment and multi-GPU exercise only on Tegner
- Assignments to be uploaded to Canvas as .pdf files. The code has made available via public GitHub (link in the report).
- Late submission: we will assign you a paper to read and ask you to write a 500 words summary
Grading
In order to pass the course:
- Submit four assignments(GPU architecture, CUDA and OpenACC) with P/F
- Complete an individual project course. The project work requires
- Project design document (One page)
- Final report (max 8 pages).
The grade will be determined by the overall quality of the project report and difficulty and originality of the implemented solution (grading criteria will be posted in Canvas).
Help for Assignments and Project
- Post your doubts, request of clarifications and questions in the discussion page of each module
- Other students and instructors possibly will reply
- It is OK to post part of code and snippet codes
- Avoid posting solutions of the problems in the discussions webpages
Resources
- You can use your own GPU for completing your assignments and project.
- In this case, you need to take care of CUDA installation on your machine
- If you don’t own a GPU, we have reserved the usage of GPUs on the Tegner supercomputer.
- If you don’t have an account on PDC supercomputer, apply for a PDC account as soon as you can.
- You also need to learn how to connect to a supercomputer. Best if you pair up with students who already used Tegner. Instructors also will help. Post problems to the discussion session.
Kurssammanfattning:
Datum | Information | Sista inlämningsdatum |
---|---|---|
Tis den 29 okt 2019 | Kalenderhändelse Lecture - Introduction to the course | 10:00 till 12:00 |
Tor den 31 okt 2019 | Kalenderhändelse Lab - Get access to GPU cluster and Work on Assignment I | 13:00 till 16:00 |
Sön den 3 nov 2019 | Uppgift Assignment I - GPU Architecture | ska lämnas in senast 23.59 |
Tis den 5 nov 2019 | Kalenderhändelse Lab - Work on Assignment II - Basic CUDA - Exercise 1 & 2 | 9:00 till 12:00 |
Tor den 7 nov 2019 | Kalenderhändelse Lab - Work on Assignment II - Basic CUDA - Exercise 3 | 14:00 till 17:00 |
Sön den 10 nov 2019 | Uppgift Assignment II - CUDA Basics | ska lämnas in senast 23.59 |
Tis den 12 nov 2019 | Kalenderhändelse Lab - Work on Assignment III - Advanced CUDA | 9:00 till 12:00 |
Tor den 14 nov 2019 | Kalenderhändelse Lab - Work on Assignment III - Advanced CUDA | 13:00 till 16:00 |
Tor den 21 nov 2019 | Kalenderhändelse Lab - Work on Assignment III - Advanced CUDA | 13:00 till 16:00 |
Mån den 25 nov 2019 | Uppgift Assignment III - Advanced CUDA | ska lämnas in senast 23.59 |
Tor den 28 nov 2019 | Kalenderhändelse Lab - Work on Assignment IV - OpenACC | 13:00 till 16:00 |
Mån den 2 dec 2019 | Uppgift Assignment IV - OpenACC | ska lämnas in senast 23.59 |
Tis den 3 dec 2019 | Kalenderhändelse Lecture - Description of Final Project | 10:00 till 12:00 |
Tor den 5 dec 2019 | Kalenderhändelse Lab - Work on Final Project | 13:00 till 16:00 |
Fre den 6 dec 2019 | Kalenderhändelse Lecture - Q&A about Final Project | 13:00 till 15:00 |
Sön den 8 dec 2019 | Uppgift Design Document | ska lämnas in senast 23.59 |
Tis den 10 dec 2019 | Kalenderhändelse Lab - Work on Final Project | 9:00 till 12:00 |
Tor den 12 dec 2019 | Kalenderhändelse Lab - Work on Final Project | 13:00 till 16:00 |
Tis den 14 jan 2020 | Uppgift Final Project Report | ska lämnas in senast 23.59 |