## IT477-Introduction to GPU Programming Fall 2014

(GPU Programming)

**Aim and objective:** The course aims to give an overview of an important trend in high performance computing – GPU programming. GPUs (graphics processing units) are special purpose hardware originally designed for graphics and games; however GPUs are very efficient in solving some general-purpose computing problems.

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 CUDA programs. Finally the course will give a brief overview of the current applications and future trends of GPU computing in scientific research.

**Main Topics to be covered are:** 1) Introduction to parallel programming. 2) GPU nVIDIA architecture. 3) GPU/CUDA programming model. 4) Overview on GPGPU computing techniques. 5) Optimizing GPU Programs. 6) The Future of GPU Computing and new GPU features. 7) CUDA example codes and practicals.

- Course Instructor: Bhaskar Chaudhury