Course Contents
Computer Architecture: Flynn’s Taxonomy, Basic five stage RISC Pipeline, Cache Memory, Register File. GPU architectures: Streaming MultiProcessors, Cache Hierarchy. (5 Lectures)
Introduction to GPU programming: CPU / GPU comparisons. Parallel programming, CUDA. (4 Lectures, 1 Tutorial)
Memory hierarchy: DRAM / global, local / shared, private / local, textures, constant memory. Pointers, parameter passing, arrays and dynamic memory, multi-dimensional arrays. Memory allocation, memory copying across devices. Programs with matrices, performance evaluation with different memories. (8 Lectures, 1 Tutorial)
Synchronization :Memory consistency. Barriers (local versus global), atomics, memory fence. Prefix sum, reductions. (6 Lectures, 2 Tutorials)
Functions and debugging: Device functions, host functions, kernels, functors. Using and developing libraries. Debugging GPU programs. Profiling, Profiling Tools.(6 Lectures, 2 Tutorial)
Streams: Asynchronous processing, tasks, task-dependence. Overlapped data transfers, default stream, synchronization with streams. Events, event-based-synchronization. ( 3 lectures , 1 tutorial)
Warps and UVM: Warp Cooperative Execution Model, Unified virtual memory. ( 3 lectures , 1 tutorial)
Case studies such as Image processing, Graph Algorithms. Deep learning. (3 lectures, 2 tutorials)
Advanced topics (based on availability of time): Dynamic parallelism. Multi-GPU processing, Heterogeneous processing, concurrent data structures. (4 lectures, 2 tutorial)
Learning Outcomes
- Familiarity with GPU architecture and programming.
- Skill to program parallel algorithms on GPUs.
- Skill to develop programming models on GPUs.
Textbooks
-
Programming Massively Parallel Processors: A Hands-on Approach; David Kirk, Wen-mei Hwu; Morgan Kaufman; 2022 (ISBN: 978-0323912310)
-
CUDA Programming: A Developer’s Guide to Parallel Computing with GPUs; Shane Cook; Morgan Kaufman; 2012 (ISBN: 978-0124159334)
Past Offerings
Course Metadata
Item | Details |
---|---|
Course Title | GPU Programming |
Course Code | CS5658 |
Course Credits | 3-1-0-4 |
Course Category | PME |
Proposing Faculty | Dr. Unnikrishnan C |
Approved on | Senate of IIT Palakkad |
Course prerequisites | Data Structures and Algorithms (CS2030 or DS2030) |
Course status | NEW |