Practical Course: GPU Programming in Computer Vision (6h / 10 ECTS)
SS 2013, TU München
Organisation:
Direct ALL questions regarding this course at cuda-ss13@in.tum.de
Evgeny Strekalovskiy
Jakob Engel
Maria Klodt
Julia Bergbauer
Date and Location:
The course will take place in our Lab (02.05.014). The general time is August 26 to September 25, with the following timeplan (for more details see Course Layout below):
- 1 week with lectures and exercises (attendance mandatory): August 26-30
- 3 weeks project phase: September 2-19
- final presentation (45 min) between September 23 and 25
Start: Mo, August 26, 2013, 10:00h - Lab 02.05.014
Note to avoid any confusion: This course takes place at the end of the summer semester 2013 during the semester break. It will also be credited to the summer semester 2013!
Course Registration:
- send an e-mail with your name, student id and major field of study to cuda-ss13@in.tum.de. Please also indicate that you want to register for the course in SS2013.
- We will enroll all registered participants in TUMonline for the examination in this course. (Note: There is no course enrolment in TUMonline, only the course examination enrollment which we will do!)
The registration for this course has been closed.
Requirements: Knowledge in C/C++, basic mathematics
Number of Students: up to 20
Course Description
The goal of this course is to provide an introduction into the NVIDIA CUDA Framework with the C programming language extension.
During the implementation of basic computer vision algorithms students will gradually learn more how to harness the power of GPU computing.
Although we assume good knowledge of the C language and basic mathematics, no further prior knowledge about CUDA, or computer vision topics will be required.
During the course students will learn how to program GPUs with CUDA. Afterwards the students will start to implement more sophisticated computer vision algorithms within a student project. The course finishes with the presentation of the project results.
Topics
- Introduction to Parallel Computing
- Introduction to CUDA
- Implementation of Basic Algorithms with CUDA (e.g. convolution, diffusion)
- Student Project: real-time optical flow estimation, superresolution from a series of images
Layout
- First Week (August 26-30): 2x2h lectures each day, followed by / interleaved with corresponding exercises (implementations). Attendance for the lectures is mandatory. You may leave early once you finished the day's exercises.
- Second-Fourth Week (September 2-19): Implementation of student projects (optical flow, super resolution) in groups of 2-3 students. You are free to work from home if you like and all teammembers agree, but keep in mind that you will require CUDA-capable hardware, and should collaborate within your team. You should also prepare your final presentation during this time. The total workload of the projects is 5-10 (full) days.
- Fifth Week (September 23 - 25): Each group will be assigned a 45 minute slot, comprised of a 20 minutes final presentation (not public, other teams cannot attend), followed by 25 minutes of Q&A with the group only. Attendance at other team's presentations is not possible.
Grading
- 30 percent: basic implementations (first week)
- 20 percent: final project presentation
- 50 percent: final project code quality / results; presentation Q&A
Literature
Slides
Additional material can be downloaded from here.