Applied GPU Programming

Log in to your course web

You are not logged in KTH, so we cannot customize the content.

DD2360 - Applied GPU Programming 

Course Goal

This course provides a broad introduction to GPU programming with an emphasis on scientific application development for GPUs.

Course Organization

The course is divided into four modules:

  1. GPU architecture: what GPUs are good for? Comparison with CPUs. 
  2. CUDA - Basic Concepts: data movement and allocation on GPUs, kernel launching, CUDA grids, synchronization
  3. CUDA Advanced Concepts: CUDA shared memory, stream, asynchronous copy, profiling
  4. Introduction to Programming GPUs with OpenCL

The course will possibly also discuss additional selected topics posting papers and links (CUDA libraries or new features or other frameworks, such as OpenACC, for GPU programming.)


  • Basic knowledge of C or C++, compiling codes, and Linux commands (Lab workstations/supercomputer)
    • We have one compulsory non-graded quiz to self-assess your knowledge of such topics 
  • Basic knowledge of computer architecture, e.g. as presented in DD2358 - Introduction to High-Performance Computing

Course Activities

Pre-recorded video lectures

  • Zoom lab/tutorial sessions
  • 4 Assignments with bonus exercises
  • Workshops
  • Final project


Feedback News