Graphics Processing Units (GPUs): Architecture and Programming

Prof. Mohamed Zahran   (aka Prof. Z)
mzahran AT cs DOT nyu DOT edu
 Thursdays: 7:10PM — 9:00PM   WWH 1302
                                                                                         Office Hours: Wednesdays 5-7pm at WWH 328                                                                                           


Welcome students! ... to the Graphics Processing Units course, edition Spring 2012.  I will keep updating this page regularly. If you have questions related to this course feel free to email me. Here is some basic information:

This course examines the architecture and capabilities of modern GPUs (graphics processing unit).
Many computations can be performed faster on the GPU than on a traditional CPU.  
This is why GPUs are present now in almost all computers; and the majority of Top 500 supercomputers in the world are built around GPUs.
GPUs are now used for a diverse set of applications not only traditional graphics applications; which introduces the concept of general-purpose GPUs or GPGPUs.
In this course, we will cover architectural aspects of modern GPUs. We will also learn how to program GPUs to solve different type of problems.

Our Grader:  Young-Rok Bahn yrbahn (at) gmail dot com

Final Exam: May 10th, 2012 (same place and time as the lecture)

Mailing List

Sign up for the Mailman mailing list for the course. You can do so by clicking here. Please follow the mailing list etiquette. 


Lecture               _______________    reading  material

Introduction                                                            chp 1 

History of GPUs                                                     chp 2

Modern GPUs : A HW Perspective                    The following papers: 1 and 2

CUDA Programming Model                                    chp 3

CUDA Threads                                                       chp 4

CUDA Memories                                                    chp 5

GPU Performance                                                   chp 6

Advanced Techniques                                              Mainly slides, and skim chp 7

Multi-GPU Systems                                                 paper

Heterogeneous Systems                                        The following papers: 1 and 2    

OpenCL                                                                chp 11 (till 11.6) and   paper   

Power-Wall                                                           The following papers: 1 and 2

Putting It All Together                                              paper

Revision problems

Assignments (non-programming)

Programming Assignments


Interesting Links (Geeky stuff about GPUs)

Important link: CUDA GPU Servers at NYU

CUDA occupancy calculator

GPU Computing
First  digital 3D rendered film (Thanks William Ward)
Interview with Ed Catmull (Thanks William Ward)
NVIDIA GPU computing seminars
For CUDA developers
Series of CUDA articles at Dr. Dobb's

GPU Simulators and Tools:
Multi2sim (simulates both GPUs and multicore)
GPUOcelot (dynamic compilation for PTX)