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

(https://learning.oreilly.com/library/view/cuda-for-engineers/9780134177540/?ar)

    • Programming Massively Parallel Processors by David Kirk and Wen-mei W. Hwu

(https://www.sciencedirect.com/book/9780124159921/programming-massively-parallel-processors)

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