Multicore and GPU Programming for Video Games

Multicore and GPU Programming for Video Games

Multicore and GPU Programming for Video Games
<!– –>

Multicore and GPU Programming for Video Games

Many thanks to our sponsors!

When and where: Fall 2008, MWF 1:05-1:55, Van Leer C241

Instructors:
Aaron Lanterman (ECE) and
Hsien-Hsin “Sean” Lee (ECE)

Webpage for the Fall 2007
offering of the course

Prereqs:
ECE3035: Mechanisms for Computation or CS2110: Computer Organization
and Programming. Students must be comfortable with C programming.
To be widely accessible to ECE students, no background in computer
graphics will be required.

Course objective:
This class provides the multicore and GPU programming skills needed to
meet timely demands of the multimedia, visualization, and gaming
industries. The course also bridges the gap
between our current generic computer architecture courses and the video
game design courses
offered by the College of Computing.
The class covers two major aspects. We will first discuss
state-of-the-art GPU
architectures and
multicore architectures from application and
hardware design perspectives. We then also consider
examples from the algorithmic needs
of modern 3-D games (e.g. geometry
processing, shading algorithms,
physical modeling, collision detection, and artificial intelligence),
as well as techniques for adapting
inexpensive GPU and multicore architectures for potential use in scientific
applications.

Projects:
Students will be expected to
undertake several projects to gain real programming experience on
the Cell processor, the Xbox 360, and NVIDIA or ATI graphics cards. NVIDIA
and ATI have made donations of several boards to support our class projects.
The IBM Center of Competence at Georgia Tech also has generously provided
access to their Cell blade system.
The final letter grade will be based on performance on these projects.

Further information

  • Important: Software
    used in this class
    – links
    to programs (SDKs, etc.)
    you want to get if you want to work on your own machine (which
    is strongly encouraged)