CEN360 : GPU Architecture and Programming



Semesters :   Fall 2016
Lecture :   DR-014 ,  TH   19:15 - 20:35
Lab :   DR-014 ,    T   19:15 - 20:35
Prerequisites :   Familiarity with assembly language and C programming language. Instructor approval.
Environment :   SUNY Albany GPU Cluster (CEASHPC), 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 :   Five projects.