CS8076-GPU ARCHITECTURE AND PROGRAMMING Syllabus 2017 Regulation

0
106

CS8076-GPU ARCHITECTURE AND PROGRAMMING Syllabus 2017 Regulation

GPU ARCHITECTURE AND PROGRAMMING Syllabus 2017 Regulation,CS8076-GPU ARCHITECTURE AND PROGRAMMING Syllabus 2017 Regulation

CS8076                      GPU ARCHITECTURE AND PROGRAMMING                   L T P C                                                                                                                            3 0 0 3

OBJECTIVES:

  • To understand the basics of GPU architectures
  • To write programs for massively parallel processors
  • To understand the issues in mapping algorithms for GPUs
  • To introduce different GPU programming models

UNIT I GPU ARCHITECTURE                                        12

Evolution of GPU architectures – Understanding Parallelism with GPU –Typical GPU Architecture – CUDA Hardware Overview – Threads, Blocks, Grids, Warps, Scheduling – Memory Handling with CUDA: Shared Memory, Global Memory, Constant Memory and Texture Memory.

UNIT II CUDA PROGRAMMING                                      8

Using CUDA – Multi GPU – Multi GPU Solutions – Optimizing CUDA Applications: Problem Decomposition, Memory Considerations, Transfers, Thread Usage, Resource Contentions.

UNIT III PROGRAMMING ISSUES                                  8

Common Problems: CUDA Error Handling, Parallel Programming Issues, Synchronization, Algorithmic Issues, Finding and Avoiding Errors.

UNIT IV OPENCL BASICS                                               8

OpenCL Standard – Kernels – Host Device Interaction – Execution Environment – Memory Model – Basic OpenCL Examples.

UNIT V ALGORITHMS ON GPU                                      9

Parallel Patterns: Convolution, Prefix Sum, Sparse Matrix – Matrix Multiplication – Programming Heterogeneous Cluster.

                                                                                                      TOTAL: 45 PERIODS

OUTCOMES:

Upon completion of the course, the students will be able to

  • Describe GPU Architecture
  • Write programs using CUDA, identify issues and debug them
  • Implement efficient algorithms in GPUs for common application kernels, such as matrix multiplication
  • Write simple programs using OpenCL
  • Identify efficient parallel programming patterns to solve problems

TEXT BOOKS:

  1. Shane Cook, CUDA Programming: ―A Developer’s Guide to Parallel Computing with GPUs (Applications of GPU Computing), First Edition, Morgan Kaufmann, 2012.
  2. David R. Kaeli, Perhaad Mistry, Dana Schaa, Dong Ping Zhang, ―Heterogeneous computing with OpenCL, 3rd Edition, Morgan Kauffman, 2015.

REFERENCES:

  1. Nicholas Wilt, ―CUDA Handbook: A Comprehensive Guide to GPU Programming, Addison – Wesley, 2013.
  2. Jason Sanders, Edward Kandrot, ―CUDA by Example: An Introduction to General Purpose GPU Programming, Addison – Wesley, 2010.
  3. David B. Kirk, Wen-mei W. Hwu, Programming Massively Parallel Processors – A Hands-on Approach, Third Edition, Morgan Kaufmann, 2016.
  4. http://www.nvidia.com/object/cuda_home_new.html
  5. http://www.openCL.org

LEAVE A REPLY

Please enter your comment!
Please enter your name here