Students Explore Video Game Programming and Architecture in New Course
ECE introduced a new video game programming class to students this fall: Multicore and GPU Programming for Video Games. The course focuses on the architecture and programming of multicore photo of Brian Davidsonprocessors and graphical processing units (GPUs). ECE faculty members Aaron Lanterman and Hsien-Hsin “Sean” Lee helped develop the class (ECE 4893A/CS4803MPG) along with David Bader, an associate professor in the College of Computing. The three professors are co-teaching the class this semester.
“Exploiting clever techniques such as multicore and GPU computing is the way to achieve continual advances in computer speed, now that clock speeds are topping out,” explained Dr. Lanterman. “There are many courses elsewhere that cover GPU programming in the context of scientific computation, but I wanted to photo of Abhishek Venkateshdo a course addressing it in its ‘native context’ of video games. An astonishing amount of cheap computing power is now available that can be applied to medical imaging, bioinformatics, and finance, but that power is only available so cheaply because people wanted to play cooler versions of Doom and Quake, which turned the technology into a mass-market item.”
With approximately $7.4 billion in revenue from software sales in 2006*, the video game industry is booming. ECE’s new course addresses this growing industry’s need for engineers with specialized CPU/GPU programming skills, such as writing multithreaded code for the multiple-core architectures of new and upcoming PCs and game consoles.
“Although our computer engineering majors are less likely to work for a company like Electronic Arts than the computer science students are, they may find themselves designing circuits at NVIDIA, AMD/ATI, IBM, or Intel,” said Dr. Lanterman. “Nothing pushes the envelope for low-cost, high-performance computation more than video games, so it’s good for our students to understand the computational demands involved and the techniques manufacturers use to meet them. In addition, many of the underlying algorithms we discuss, such as collision detection, also have applications in robotics.”
Rather than focusing solely on game design, ECE 4893A uses gaming systems to provide a practical arena for considering issues in computer architecture, such as how hardware features influence game design. The students focus specifically on architectures available in inexpensive consumer hardware, including Sony PlayStation 3, Xbox 360, and Windows PCs with NVIDIA and ATI graphics cards.
To develop games for the PC and Xbox 360 environments, the students use Microsoft XNA Game Studio Express.One of the many issues considered involves the trade-offs between asymmetric multicore architectures (such as the STI Cell BE used in the PlayStation 3) and symmetric multicore architectures (such as the triple PowerPC used in the Xbox 360).
Student response to the course thus far has been overwhelmingly positive. “The class covers a broad spectrum, so every project has involved a different technology, and each one has involved a significant learning curve,” said Dr. Lanterman. “The students have been more enthusiastic than I’ve ever seen in any course I’ve taught, often going beyond the ‘call of duty’ in their projects.”
For more information about Multicore and GPU Programming for Video Games, visit http://users.ece.gatech.edu/~lanterma/mpg/.
- Revenue from software sales statistic courtesy of the NPD Group, a leading marketing information provider.*