CIS 700/010 (Special Topics) - GPU Programming and Architecture
This course will examine the architecture and capabilities of
modern GPUs (graphics processing unit). The GPU has grown in power
over recent years, to the point where many computations can be
performed faster on the GPU than on a traditional CPU. GPUs have
also become programmable, allowing them to be used for a diverse set
of applications far removed from traditional graphics settings.
Topics covered will include architectural aspects of modern GPUs,
with a special focus on their streaming parallel nature, writing
programs on the GPU using high level languages like Cg and
BrookGPU, and using the GPU for graphics and general purpose
applications in the area of geometry modelling, physical
simulation, scientific computing and games.
The course will be hands-on; there will be regular programming
assignments, and students will also be expected to work on a
project (most likely a larger programming endeavour, though more
theoretical options will be considered). Students will be expected
to have a basic understanding of computer architecture, graphics,
and OpenGL.
Prerequisite: CSE 460 or CIS 560, and familiarity with
computer hardware/systems. The hardware/systems requirement may be
met by CIS 501; or CIT 593 and 595; or CSE 240 (with CSE 371
recommended); or equivalent coursework.
This course will be an optional course under the CGGT Program.
Grading: 2-3 assignments, and one project.
-
Videos used in lecture:
Reading:
-
Reading:
-
-
-
-
Reading:
-
02/03/2005: Matrix Operations: Matrix-Vector multiplication
Reading:
-
Reading:
-
Code:
Code for class demo. WARNING: Code is written to compile in cygwin
with g++. Also, it uses extgl rather than GLEW. Make changes appropriately.
-
-
02/17/2005: More duality: Visibility and
Collision Detection.
Reading:
-
02/22/2005: Database and statistical operations.
-
Reading:
- Power Efficient Processor Architecture and The Cell
Processor, by H. Peter Hofstee. Slides from his talk at HPCA
-
-
03/03/2005: Deadline for
Assignment 2 and project choices.
-
03/15/2005: Physical Simulation on the GPU I:
Solving Linear Systems
-
03/17/2005: Physical Simulation the GPU II:
Multigrid methods and Mapping to the GPU.
Reading:
- Sparse Matrix Solvers on the GPU: Conjugate Gradients and Multigrid by Bolz, Farmer, Grinspun and Schröder. (SIGGRAPH 2003)
- A multigrid solver for boundary value problems using programmable
graphics hardware, by Goodnight, Woolley, Lewin, Luebke, and
Humphreys (SIGGRAPH 2003)
- Physically-based visual simulation on graphics hardware, by
Harris, Coombe, Scheuermann, and Lastra (GH 2002)
-
03/22/2005: GPU = Parallel Machine I: The FFT
Reading:
-
Reading:
-
03/29/2005: Compiler Design.
Reading:
- Interactive multi-pass programmable shading, by Peercy, Olano, Airey and Ungar (SIGGRAPH 2000)
- A real-time procedural shading system for programmable graphics
hardware, by Proudfoot, Mark, Tzvetkov and Hanrahan (SIGGRAPH 2001)
- Efficient partitioning of fragment shaders for multipass
rendering on programmable graphics hardware, by Chan, Ng, Sen,
Proudfoot and Hanrahan (GH 2002)
- Automatic shader level of detail, by Olano, Kuehne and Simmons
(GH 2003)
-
-
-
04/07/2005: No Lecture Today.
-
-
04/14/2005: Guest Lecture: Renderman -- Paul Kanyuk
-
04/19/2005: Stream Models of Computation
-
04/21/2005: Wrapup.
Other reading:
Other Resources
Acknowledgements
Courses at
UC Davis
(
John Owens),
UT Austin (
Bill Mark),
UNC (
Dinesh Manocha and
Naga Govindaraju),
Aarhus (
Jesper Mosegaard/
Thomas Sangild), and talks by
Pat Hanrahan