Review Accelerating game physics is a hot topic for gamers. The concept of using add-on hardware - be it GPU or even a new kind of dedicated physics processing unit (PPU) - to speed up physics calculations that would otherwise have to run on the CPU is back at the forefront of developers' discussions...
The idea isn't new - games middleware and individual developers have already been making CPU-hosted physics calculations go faster by multi-threading their game engines and letting game physics run alongside other parts of the engine. Multi-core CPUs will really help this technique.
Havok, a physics middleware developer, recently announced Havok FX, which performs game physics calculations on a Shader Model 3.0 graphics processor. As far as PPU acceleration goes, there is currently only one vendor out there. Ageia, a Californian start-up fresh from a round of venture capital and new employee hires, not only has a PPU design in production but it's selling the product too.
Recently shipping in high-end systems from a range of mostly boutique vendor systems, Ageia's PhysX PPU even has support in a few games. Worth a peek, then?
I've recently spent time with a board and a couple of supported games, and there's some data worth sharing with you. First, let's look at the PhysX PPU itself and see what it's capable of. Ageia's silicon is made by TSMC in Taiwan, on a 130nm process. Measuring 14 x 13.5mm and comprising around 125m transistors, the chip appears to be clocked in the range 250-266MHz or 500-533MHz.
PhysX is ahead of Havok FX in what it can accelerate. The PhysX PPU is able to process more than just large-scale collision or 'effects' physics via its API. There's support for limited fluid dynamics simulations, vehicles (wheel, torque and tire simulation), object raycasting and more, which the PPU can fully or partly accelerate, with Ageia moving more onto the hardware as time goes by.
At its core the chips is just a wide parallel-stream processor with a command core - sometimes called the control engine - to run it all and a memory controller to move data onto and off of the chip during processing.