Kursöversikt

Instructors

Stefano Markidis and Sergio Rivas-Gomez

Examiner 

Erwin Laure

 

Course Description

This course provides a broad introduction to GPU programming with emphasis on application development

The course is divided in 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

Non-Graded

Readings

Recommended

Non-graded

Lab attendance

Recommended

Non-Graded

3 Individual 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

Mon 10/30   1 PM – 3 PM

D35

Presentation of the course

Thu 11/2       9 AM – 12 PM

4V5Grö

Work on Assignment I  (GPU Architecture)

Mon 11/6      1 PM – 4 PM

4V5Grö

Work on Assignment 2 (CUDA)

Thu  11/9       9 AM -  12 PM

5O2Spo

Work on Assignment 2 (CUDA)

Mon 11/13    1 PM – 4 PM

4V4Gul

Work on Assignment 3 (OpenGL)

Thu 11/16     9 AM – 12 PM

4V5Grö

Work on Assignment 3 (OpenGL)

Mon 11/20    1 PM – 4 PM

4V4Gul

Work on Assignment 3 (OpenGL)

Thu 11/23      9 AM – 12 PM

To be defined

Introduction to Project Work

Mon 11/27    1 PM – 4 PM

5O2Spo

Project Work

Thu 11/30      9 AM – 12 PM

5O2Spo

Project Work

Mon 12/4      1 PM – 3 PM

D35

Project Design Document/ Init. Impl.  - Discussion

Thu 12/7        9 AM – 12 PM

5O1Spe

Project Work

Mon 12/11    1 PM – 3 PM

Q3

Prototype Implementation - Discussion

Thu 12/14      9 AM – 12 PM

4V3Ora

Project Work

 

Lab sessions

  • Attendance of labs sessions is not required.
  • 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.
  • Recommended, not required, books are:
    • CUDA for Engineers by Duane Storti and Mete Yurtoglu
    • Programming Massively Parallel Processors by David Kirk and Wen-mei W. Hwu

 

Assignments

Submission Deadline

Individual/Team

Grading

Topic

Sat  11/4        11.49 PM CET

Individual

P/F

GPU Architecture

Sat  11/11      11.49 PM CET

Individual

P/F

Computation on GPU with CUDA

Wed 11/22     11.49 PM CET

Individual

P/F

Graphics on GPU with OpenGL

Thu  11/30     11.49 PM CET

Team

P/F

Project design document

Thu  12/14     11.49 PM CET

Team

P/F

Report on prototype implementation

Mon  1/8        11.49 PM CET

Team

A-F

Final project report

Assignments to be uploaded to Canvas as .pdf files

 

Final Examination

  • The final exam will be a 20 minutes presentation of the course project in front of the class. Like the final report, the presentation will be graded A-F
  • It has originally scheduled on the 8th of January 2018
  • Many students can’t be present
    • We will schedule 1-2 time slots for project course presentations in that week:
    • Fill the doodle at https://doodle.com/poll/chgga3e2gtwhwrx8
    • Room number will be notified once we found good time slots.

 

Grading

In order to pass the course you need to submit three individual assignments (GPU architecture, CUDA and OpenGL) with Pass/Fail and complete a project course done in teams of 3 students. The project work requires the submission of project design document, a report on a first prototype implementation and a final report together with a presentation of the project in front of the class. The grade will be determined by the overall quality of the project report and presentation and difficulty and originality of the implemented solution.

 

Individual Assignments

You can work together with maximum two other students for your individual assignment:

  • Submission of the assignment is still individual (each student needs to submit).
  • The text of the submitted assignment needs to be different. You can’t submit the same assignment for more than one person.
  • You can share code and experimental results if you worked together. In this case, you need to state who you worked with during the assignment preparation.

 

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 to post 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 and OpenGL 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