National Institute of Technology Rourkela

राष्ट्रीय प्रौद्योगिकी संस्थान राउरकेला

ଜାତୀୟ ପ୍ରଯୁକ୍ତି ପ୍ରତିଷ୍ଠାନ ରାଉରକେଲା

An Institute of National Importance

Syllabus

Course Details

Subject {L-T-P / C} : CS6530 : GPU Architecture and Programming { 3-0-0 / 3}

Subject Nature : Theory

Coordinator : Prof. 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