DD2360 Applied GPU Programming 7.5 credits

DD2360 Applied GPU Programming
Choose semester and course offering
Choose semester and course offering to see current information and more about the course, such as course syllabus, study period, and application information.
Content and learning outcomes
Course contents
The course focuses on three main questions:
- 1. GPU architecture. Computation and memory organisation of different commercial graphics processors will be introduced. A comparison with conventional CPUs and a presentation of new future GPUs will be given.
- 2. GPU programming with CUDA. CUDA's concepts and how to use them to develop applications for GPUs will be introduced through examples from different areas, such as image processing and scientific computing. Also development tools, such as debuggers and tools to measure performance will be presented.
- 3. GPU programming with GPU libraries and algorithmic packages. Packages for high productivity, for example the Thrust library, OpenACC and cuDNN will be presented. Different packages will be explained through examples from different areas of computer science.
The students will obtain access to the GPU cluster Tegner at PDC if they do not have access to a computer with GPU already.
Intended learning outcomes
On completion of the course, students should be able to:
- analyse GPU architecture, assess their advantages and identify potential software optimisations based on knowledge of the GPU architecture,
- design and implement a programme for a GPU for applications in scientific computing, machine learning, image and video processing, computer graphics or for a mobile phone,
- use experimental highly productive methods for GPU programming, such as GPU libraries and algorithmic packages, to speed up the development of large GPU applications,
- use efficient development tools for GPU programming such as debuggers and tools for measuring performance,
- prepare a written report about design development and the implementation of code for a GPU (with application to scientific computing, machine learning, image and video processing, computer graphics or for a mobile phone) and present the report at a seminar orally.
Course disposition
Literature and preparations
Specific prerequisites
Recommended prerequisites
Equipment
Literature
A series of articles that present design and implementation of applications for GPU will be published on the course web page. A book that partly covers the course content is "CUDA left Engineers" by D. Storti and M. Yurtoglu.
Examination and completion
If the course is discontinued, students may request to be examined during the following two academic years.
Grading scale
Examination
- LAB1 - Laboratory, 1.0 credits, grading scale: P, F
- LAB2 - Laboratory, 1.0 credits, grading scale: P, F
- LAB3 - Laboratory, 1.0 credits, grading scale: P, F
- PRO1 - Project, 4.5 credits, grading scale: A, B, C, D, E, FX, F
Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.
The examiner may apply another examination format when re-examining individual students.
Opportunity to complete the requirements via supplementary examination
Opportunity to raise an approved grade via renewed examination
Examiner
Ethical approach
- All members of a group are responsible for the group's work.
- In any assessment, every student shall honestly disclose any help received and sources used.
- In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.
Further information
Course web
Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.
Course web DD2360Offered by
Main field of study
Education cycle
Add-on studies
Contact
Supplementary information
In this course, the EECS code of honor applies, see:
http://www.kth.se/en/eecs/utbildning/hederskodex