Course Details
Subject {L-T-P / C} : CS6530 : GPU Architecture and Programming { 3-0-0 / 3}
Subject Nature : Theory
Coordinator : Sumanta Pyne
Syllabus
1. Review of Traditional Computer Architecture – Basic five stage RISC Pipeline, Cache Memory, Register
2. SIMD instructions
3. GPU architectures - Streaming Multi Processors, Cache Hierarchy, The Graphics Pipeline
4. Introduction to CUDA programming
5. Multi-dimensional mapping of dataspace, Synchronization
6. Warp Scheduling, Divergence
7. Memory Access Coalescing
8. Optimization examples : optimizing Reduction Kernels
9. Optimization examples : Kernel Fusion, Thread and Block
10. OpenCL basics
11. OpenCL for Heterogeneous Computing
12. Application Design : Efficient Neural Network Training/Inferencing
Course Objectives
- Enable students to utilize GPU architectures.
- Train students for designing hardware and software for GPU computing.
Course Outcomes
Students will have basic knowledge of GPU architecture and programming.
Essential Reading
- John L.Hennessy and David A. Patterson, Computer Architecture A Quantitative Approach, Elsevier
- David Kirk and Wen-mei Hwu, Programming Massively Parallel Processors, Elsevier
Supplementary Reading
- Benedict Gaster,Lee Howes, David R. Kaeli, Heterogeneous Computing with OpenCL, Elsevier
- Jason Sanders, Edward Kandrot, CUDA by Example: An Introduction to General-Purpose GPU Programming, NVDIA