Page 32 - REC :: M.E. CSE Curriculum and Syllabus - R2019
P. 32
CP19P12 GPU COMPUTING Category L T P C
PE 3 0 0 3
Objectives:
⚫ To understand the basics of GPU architectures
⚫ To write programs for CUDA programming
⚫ To understand the issues in mapping algorithms for GPUs
⚫ To introduce different GPU programming issues
⚫ To understand the GPU memory and concurrency model.
UNIT-I GPU ARCHITECTURE 9
History of Supercomputing – Understanding Parallelism with GPU – CUDA Hardware Overview – Threads, Blocks,
Grids, Warps, Scheduling – Memory Handling with CUDA: Shared, Global, Constant, 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 CUDA 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 – Platform Model – Execution Model – Programming Model – Memory Model – Basic OpenCL
Examples.
UNIT-V CONCURRENCY MODEL 9
Commands and Queuing Model - Native and Built-in Kernels – Device side Queuing – Host-side Memory Model –
Device-side Memory Model – Dissecting OpenCL on Heterogeneous System.
Total Contact Hours : 45
Course Outcomes:
Upon completion of the course, 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.
⚫
Write simple programs using OpenCL.
⚫
Understand the memory models of GPU.
⚫
Reference Books(s) / Web links:
Shane Cook, CUDA Programming: ―A Developer’s Guide to Parallel Computing with GPUs (Applications of
1
GPU Computing), First Edition, Morgan Kaufmann, 2012
David R. Kaeli, Perhaad Mistry, Dana Schaa, Dong Ping Zhang, ―Heterogeneous computing with OpenCL, 3rd
2
Edition, Morgan Kauffman, 2015.
3 Nicholas Wilt, ―CUDA Handbook: A Comprehensive Guide to GPU Programming, Addison – Wesley, 2013.
Jason Sanders, Edward Kandrot, ―CUDA by Example: An Introduction to General Purpose GPU Programming,
4
Addison – Wesley, 2010.
David B. Kirk, Wen-mei W. Hwu, Programming Massively Parallel Processors – A Hands-on Approach, Third
5
Edition, Morgan Kaufmann, 2016.
6 http://www.nvidia.com/object/cuda_home_new.html
7 http://www.openCL.org

