ECE555 (GMU)

ECE 555 : GPU Architecture and Programming



 Cross-Listings :   ECE 455 (Undergraduate)
Years :   2021-
Lecture :   PLANET 124 ,  W   16:30 - 19:10 
Lab :   PLANET 124 ,  W   16:30 - 19:10 
Prerequisites :   ECE445 or CS 465, or equivalent.
Environment :   HOPPER GPU cluster, Nvidia Parallel NSight, Eclipse IDE.
Description :  

Introduction to general GPU architecture, specifically Nvidia. GPU architectural elements such as global memory, constant memory, texture memory, SP, SM, scratchpad memory, L1$ and L2$ memory, multi-banked memory, register file, and task scheduler are introduced. The role of these structural elements on the software development are taught in detail, with specific emphasis on their impact on the parallel program performance. CUDA (Compute-Unified Device Architecture) programming language is introduced and utilized throughout the entire class. CUDA programming language is used to achieve parallel sorting, reduction, numeric iterations and fundamental graphics operations, such as ray tracing. CPU/GPU interaction and task splitting is presented in detail to maximize the performance of partially parallel/partially-serial workloads.

Workload :   3 projects, 8 labs, 2 exams.