Single page Print

Ageia aims for physics coprocessing
Since Ageia first started making noise about accelerating gaming physics calculations in hardware, folks have been raising questions about whether such a thing makes sense. The acceleration of specific, particularly intensive computing problems using custom hardware can be a very potent thing, as the rise of custom graphics hardware in the past decade has demonstrated. CPUs are good at many things, but offloading certain jobs to custom hardware is often faster, more energy efficient, and enables more consistent performance. We now have custom chips or logic units to handle a host of specific tasks inside of a PC, including audio processing, video scaling and playback, and various types of I/O.

At first blush, physics seems like a pretty good candidate for hardware acceleration. Physics involves lots of floating-point math calculations that can potentially be processed in parallel. In games, physics processing must be fast in order to be useful; all calculations need to happen in real time, with updates coming each time the screen is redrawn. Much like graphics, physics is the sort of computing problem at which coprocessors can excel. Not only does that fact open the door for a custom physics processor, but the parallel nature of the task could help turn physics acceleration into a solid long-term chip business. The number of transistors possible on a chip should double every couple of years for as long as Moore's Law holds out, and Ageia should be able to build ever more powerful physics processors as a result.

Sounds easy, right? Not exactly, but Ageia has taken on the twin challenges of building a custom physics processor and cultivating a healthy market for such a chip.

On the hardware end of things, the PhysX PPU is a bit of a mystery. Aside from transistor counts and the like, we know surprisingly little about it. The PPU has "many copies" of Ageia's physics processing core onboard, but we don't know exactly how many. Ageia is also coy about the clock speed of the PPU. Apparently they don't want to give away the ingredients for the special sauce this early into the game. Without this information, we can't come up with theoretical peak gigaFLOPs numbers or the like, for whatever they're worth.

We do know a few things, though, and can speculate on some others. We know the SIMD exection cores must be geared to handle floating-point datatypes, for instance, and SIMD execution is probably narrower than on a graphics chip. Processing physics involves lots of interactions between different objects, and managing those interactions would require robust communication between the different execution cores on the chip—probably via an internal switched fabric. Ageia claims the PhysX PPU has "two terabits per second"—or about 250 GB/s—of bidirectional memory bandwidth internally.

On the software front, Ageia has its PhysX API that game developers can use to access a range of physics capabilities. When we think of gaming physics, the first thing that comes to mind is typically rigid-body interactions—a grenade bouncing around a corner, a race car running into a wall, etc—but rigid bodies are just part of the picture. Ageia's software can also handle particles (for smoke, dust, etc.), fluids, hair, cloth and clothing. Virtual joints and springs give "rag doll" characters and vehicles the appropriate flexibility and resistance, and materials can be programmed with specific properties—so that ice is slick, for instance. The PhysX software also supports collision detection for each type of object, so that different types of objects can interact realistically.

Most of these effects are familiar to gamers by now, but the distinctive thing about PhysX is that the PPU can accelerate these things in hardware. The PPU is programmable, and Ageia has chosen a subset of commonly used, performance-critical functions in the PhysX API to hand off to hardware. Over time, Ageia plans to accelerate more and more of the API's capabilities via the PPU. In the absence of PPU hardware, the PhysX API will fall back to software processing. In fact, the PhysX software is multithreaded in order to take advantage of multi-core CPUs.

This software fallback is key to Ageia's world domination plans. The company is licensing its entire PhysX API and software development kit, complete with tools, to PC game developers free of charge. The only catch: those games must take advantage of a PhysX PPU if present. Ageia has also shepherded the PhysX API's migration on to next-gen game consoles. On the Xbox 360, game development houses can license the SDK for about $50,000, and it will use all three of the cores on the Xbox 360 CPU. Sony simply bought out the rights to the PhysX SDK for the PlayStation 3 so all developers can use it for free, and Sony engineers have ported the physics processing routines to the Cell processor. These efforts have made the PhysX API a reasonably complete, low-cost, cross-platform physics engine, and Ageia has had some success persuading game developers, game engine companies, and tool makers to use it.

The list of upcoming PhysX-fortified titles is long, but easily most prominent among them are Unreal Engine 3 and Unreal Tournament 2007. Unfortunately, the list of current titles with PhysX support is depressingly short. We'll test the card with a couple of the most prominent titles shortly.