CIS 665: GPU Programming and Architecture
University of Pennsylvania
Spring 2008


05/5/2008: Final Project Demo Session (Levine 307: 5pm-8pm)
05/9/2008: Final Project Report and Code Due!

Course Description

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, CUDA, SlabOps, 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).

NOTE: Students will be expected to have a basic understanding of computer architecture, graphics, and OpenGL.


Grading for this course is as follows: There is no final or mid-term exams. The grading will be based on homeworks, projects, and presentation. Detailed allocations are tentatively as follows:

Meeting Time



Teaching Assistant

Lab resources

The following labs are available for your use if you need. If you don't already have access, contact Gary or Joe.

Page Maintained by Joseph Kider (
Ph.D. Student working with Dr. Norman I. Badler
at the Center for Human Modeling and Simulation
© 2008 Joe Kider / CIS665, All Rights Reserved