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
   27   28   29   30   31   32   33   34   35   36   37