Back close

Course Detail

Course Name GPU Architecture and Programming
Course Code 24AI745
Program M. Tech. in Artificial Intelligence
Credits 3
Campus Amritapuri ,Coimbatore

Syllabus

Introduction to Parallel Programming – Types of Parallelism – SIMD and SIMT – GPU architecture- Threads, Blocks and Grids- GPU Memory Organization- CUDA Programming Model- CUDA Mem- ory Model- Multidimensional thread management with CUDA- Basic CUDA Programming Examples -CUDA Streams – Synchronization and Warp Scheduling, Optimization.

Introduction to OpenCL – OpenCL Device Architectures – Basic OpenCL Programming Model – OpenCL Memory Model – Concurrency and Execution Model – Dissecting a CPU/GPU – OpenCL for Heterogeneous Computing – OpenCL Implementation – examples.

Case study: Convolution, Video Processing, Histogram and Mixed Particle Simulation – OpenCL Extensions – OpenCL Profiling and Debugging – WebCL, Applications of GPU Architecture like Gaming, Computer Vision, etc.

Objectives and Outcomes

Preamble

GPU accelerated processors are being actively used nowadays in general purpose and scientific computing. These massively parallel, off-the shelf devices are used to run compute-intensive and time-consuming part of applications. This course introduces the students to the Single Instruction Multiple Thread (SIMT) architecture of modern GPUs and architecture-aware programming frameworks like Compute Unified Device Architecture (CUDA) and OpenCL. While CUDA programming model is a proprietary framework for the students to learn to interface with GPUs, OpenCL allows them to be familiarized with an open, heterogeneous parallel computing model. Modern day applications of GPUs are also introduced to the students through case studies.

Course Objectives

  • To introduce the fundamentals of GPU computing architectures and programming models.
  • To familiarize the student with GPU aware programming frameworks like proprietary NVIDIA CUDA(C) and open heterogeneous programming standards like OpenCL.
  • To create GPGPU accelerated real world applications.

 

Course Outcomes

COs Description
CO1 Understand and analyze parallel programming architectures, including SIMT architecture of modern GPUs, and their implications for AI and industry applications.
CO2 Master GPU-aware programming using NVIDIA CUDA and OpenCL frameworks to develop efficient GPU-accelerated applications.
CO3 Design and implement heterogeneous computing solutions across CPU/GPU architectures using OpenCL, emphasizing performance optimization and scalability.
CO4 Apply GPU computing techniques to real-world applications such as convolution, video processing, histogram analysis, and mixed particle simulations, and evaluate their performance metrics and scalability.

Prerequisites

  • Computer Architecture
  • Programming Fundamentals
  • Data Structures

CO-PO Mapping

COs Description PO1 PO2 PO3 PO4 PO5
CO1 Understand and analyze parallel programming architectures, including SIMT architecture of modern GPUs, and their implications for AI and industry applications. 1 2 2 1
CO2 Master GPU-aware programming using NVIDIA CUDA and OpenCL frameworks to develop efficient GPU-accelerated applications. 1 3 2
CO3 Design and implement heterogeneous computing solutions across CPU/GPU architectures using OpenCL, emphasizing performance optimization and scalability. 1 3 3 1 1
CO4 Apply GPU computing techniques to real-world applications such as convolution, video processing, histogram analysis, and mixed particle simulations, and evaluate their performance metrics and scalability. 1 2 2 2 1

Evaluation Pattern

Evaluation Pattern – 70:30

  • Midterm Exam – 20%
  • Lab Assignments – 25%
  • Project – 25%
  • End Semester Exam – 30%

Text Books / References

Text Book / References

  1. David B. Kirk, Wenmei W. Hwu, Morgan Kaufmann, Programming Massively Parallel Processors: A Hands-on Approach, 2016
  2. Benedict R. Gaster, Lee Howes, David, R. Kaeli, Perhaad Mistry and Dana Schaa, ”Heterogeneous Computing with OpenCL”, Elsevier, 2013.
  3. Jason Sanders, Edward Kandrot, ”CUDA by Example: An Introduction to General-Purpose GPU Programming”, Addison-Wesley Professional, 2010
  4. Shane Cook, ”CUDA Programming: A Developer’s Guide to Parallel Computing with GPUs”, Newnes, 2012
  5. Aaftab Munshi, Benedict Gaster, Timothy G. Mattson, James Fung and Dan Ginsburg, ”OpenCL Programming Guide”, Addison-Wesley Professional, 2011.
  6. Ryoji Tsuchiyama, Takashi Nakamura, Takuro Iizuka and Akihiro Asahara, ”The OpenCL Programming Book”, Fixstars Corporation, 2010.
  7. Matthew Scarpio, ”OpenCL in Action: How to Accelerate Graphics and Computations”, Manning Publications, 2011.

DISCLAIMER: The appearance of external links on this web site does not constitute endorsement by the School of Biotechnology/Amrita Vishwa Vidyapeetham or the information, products or services contained therein. For other than authorized activities, the Amrita Vishwa Vidyapeetham does not exercise any editorial control over the information you may find at these locations. These links are provided consistent with the stated purpose of this web site.

Admissions Apply Now