Multicore and GPU Programming for Video Games

Multicore and GPU Programming for Video Games

Multicore and GPU Programming for Video Games

Many thanks to NVIDIA and ATI
for donating graphics cards for our Klaus 1446
laboratory

Mechanics

When and where: Fall 2009, MWF 1:35-2:55, Van Leer C456

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

Old webpages:
Fall 2007,
Fall 2008

Course description: 3-D graphics pipelines. Real-time simulation
concerns. GPU architectures. Graphics APIs. Shaders. Multicore programming
on symmetric and asymmetric architectires. SIMD and DMA programming.

Prereqs:
Any one of the following is sufficient:
ECE3035-Mechanisms for Computation
or ECE3090-Software
Fundamentals for Engineering Systems
or CS2110-Computer Organization and Programming
or CS2261-Media Device Architecture.
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 GPGPU 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 CoC and LCC. The class covers state-of-the-art general purpose graphical processing unit architectures (GPGPUs) and multicore architectures from application and hardware design perspectives. The course considers programming models using 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 such inexpensive architectures for potential use in scientific applications.

Grading:
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.
There may also be a few short essay-type (around 1/2 page) questions and
“pencil and paper” exercises.
The final letter grade will be based on performance on these projects and
exercises. Various assignments may have different weights in the final grade
calculation;
these weights will be noted on each assignment.

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)