IT477 Introduction to GPU Programming
(IT477 GPU-Programming)

Aim and objective: The course aims to give an overview of an important trend in high performance computing – GPU programming. 

General Purpose Graphical Processing Units (GPGPU) primarily refers to the use of GPUs for computationally intensive mathematical and scientific computing. The enormous peak performance of GPUs for arithmetically intensive computations relatively at a much lower cost compared to CPUs makes GPU computing a very attractive new alternative for computationally demanding problems.

The course will help the students in understanding the basic concepts of GPU programming, CUDA (Compute Unified Device Architecture) parallel computing platform and hands-on experience on implementing some standard scientific and engineering algorithms. Main topics include: Modern processors, GPU architecture, parallel algorithm design, data parallelism, CUDA thread organization, CUDA memories,  Performance Considerations and important Parallel patterns. Implementation of several parallel algorithms on GPUs using CUDA programming model.

Lecture hours per week: 3 + Practical hours per week: 2