CS8076 - GPU ARCHITECTURE AND PROGRAMMING (Syllabus) 2017-regulation Anna University

CS8076 - GPU ARCHITECTURE AND PROGRAMMING (Syllabus) 2017-regulation Anna University

CS8076

GPU ARCHITECTURE AND PROGRAMMING

 LPTC

3003

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              

9

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              

9

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


UNIT III

PROGRAMMING ISSUES              

9

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

UNIT IV

OPENCL BASICS               

9

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

Comments

Popular posts from this blog

CS3491 Syllabus - Artificial Intelligence And Machine Learning - 2021 Regulation Anna University

BE3251 - Basic Electrical and Electronics Engineering (Syllabus) 2021-regulation Anna University

CS3251 - PROGRAMMING IN C (Syllabus) 2021-regulation Anna University