Game Physics and the PhysX PPU

One of the properties of graphics that made the feature a good fit for a specialized processor inside a PC is the fact that the task is infinitely parallelizable. Hundreds of thousands, and even millions of pixels need to be processed every frame. The more detailed a rendering needs to be, the more parallel the task becomes. The same is true with physics. As with the visual world, the physical world is continuous rather than discrete. The more processing power we have, the more things we can simulate at once, and the more realistically we can approximate the real world.

But as we’ll see, there is more to it than simply parallel compute power.

In the beginning there was collision detection, and it was good. And then came some semblance of gravity. Over the years, more and more objects in the game world have become interactive and affected by the world around it. Now the game physics world has culminated in the ability to bowl for oil drums with floppy dead people.

Fast, efficient, rigid body simulation has been well developed over the past couple years. A rigid body is basically a single unit that does not deform due to physical interaction. Think of two billiard balls slamming into each other: the balls retain their shape. If one were to drop a billiard ball on a beach ball, we would see a much different reaction: the beach ball would contract and expand a great deal. In current games, we would treat the beach ball, and indeed everything else, as a rigid body object.

Any rigid body object can have a number of forces acting on it at a time depending on the complexity of the simulation. Each object also has its own properties that are used to determine how these forces affect the object. This can scale from simple (mass and shape) to complex (like data to describe how shape and mass distribution affect angular velocity) depending on how accurate the developer wants to make things.

Not much interesting happens if a rigid body is sitting on flat ground and not moving with nothing touching it. Interesting things start to happen when either the user interacts with an object, or multiple rigid bodies interact with each other. We can easily see how these interactions could get complex. Think of bowling or billiards. Now think a little more complex. What happens when a rocket hits a brick wall and all the bricks go flying? Currently, games generally use tens to about a hundred rigid body objects in any given scene. This is somewhat limiting when the game calls for large scale effects or destruction.

So, here’s the real question. Why won’t Intel’s vision of multi and many-core processors be good enough to handle what a discrete PPU could handle?

Of course more parallel processing power will help no matter how it comes. But the deeper issue is data movement. The example AGEIA gave us to think about was a huge pile of bricks; when you push down on one brick near the top, forces are transferred to all other bricks in the stack. This may not be difficult on the scale to hundreds, but how about 30000 objects in a stack? How about keeping track of that while handling deformable (soft body) objects, fluids, and all collision detection in the scene?

The was all this needs to be handled is not simply with lots of parallel independent floating point power, but with lots of parallel floating point power connected by huge bandwidth. The fact that some initial Intel dual core chips will have to go off chip and back on to communicate, not as much performance is gained as possible. Certainly more parallelism is better no matter what, but it’s the high bandwidth that clenches the deal.

AGEIA’s background is in switched fabrics and networking hardware. The one of the keys to their chip is in the way PhysX is able to move high volumes of computed data internally. In order to find the forces on a brick in the middle of a stack that’s been kicked, the forces on all the bricks around it need to be updated.

Getting data into and out of the chip as fast as possible is important as well. For now, AGEIA is sticking with GDDR3 in order to benefit from the high volume (and lower costs) generated by the graphics market. It would be possible for the PhysX to benefit from higher bandwidth solutions like XDR, but for now it is important for AGEIA to minimize the cost/benefit ratio in order to succeed. The company philosophy at the outset is to follow what the graphics market does in terms of on card RAM.

We really don’t know a great deal about the intimate details of the architecture, but a light weight parallel floating point with lots of communications is a good start. We’ve had several guesses at how the hardware works that have been confirmed wrong. But to paraphrase Edison, eliminating all incorrect paths leads to the goal.

It does seem obvious that all physical properties of objects can be uploaded to the hardware initially (like a graphics card does with textures and such) and manipulated/updated every time something changes. We’ll be bringing out as many details as we can as soon as we are able.

Index Final Words
POST A COMMENT

70 Comments

View All Comments

  • DerekWilson - Friday, March 11, 2005 - link

    The PPU will use GDDR3 at very high speeds. It needs the bandwidth and this adds cost. Also, since AGEIA will be starting at lower volume than NVIDIA and ATI, they will likely have a higher cost per part. Risk to OEMs and vendors will mean more pad in the price.

    #21: I was using the fact that plasma has been around since before I was born and wasn't adopted for actual use until a few years ago. I was illustrating the idea and technology existed but wasn't used.
    Reply
  • Zan Lynx - Friday, March 11, 2005 - link

    I think this PPU is a good idea. I would probably get one for Unreal 3 if the price is less than $200.

    I hope that this company releases hardware programming information. That way this card could be used by things other than games and physics. When you aren't playing games, imagine it being used to boost your Folding@Home scores or building Fyre screensaver animations.

    Scientists could buy one for every node in their university cluster and get crazy with the fluid dynamics simulations.
    Reply
  • REMF - Friday, March 11, 2005 - link

    why should it cost so much?

    a 160m transistor 6600GT with 128MB of high speed GDD2 ram costs less than £120 these days.

    a 120m transistor PPU with 128MB of moderately high speed ram should cost less than £100 today.

    when you consider the cost of 2x 6800GT's for an SLI rig (£500), £100 is a drop in the ocean.

    Reply
  • Shinei - Friday, March 11, 2005 - link

    I like the idea, but I think the price is going to hurt it, not to mention the idea of a standalone device that only works in video games. I DO think that Cell will be a worthy competitor to this, so long as someone takes the time to turn one of the SPU subcomponents into a hardcore physics processor. Reply
  • bersl2 - Friday, March 11, 2005 - link

    #6: STFU. 3dfx used Glide, a derivative API of OpenGL. Things happen independently of MS in computer technology, although that apparently is beyond the comprehension of some people.

    I wonder how complicated a model it will be capable of. I would hope that they would implement electro-magnetism and maybe thermodynamics to some degree for consumer models, but could this have great scientific value for at least the subset of physics that we are absolutely confident about (i.e., not quantum mechanics or astrophysics)? I could see this being very useful for fluid dynamics.
    Reply
  • gibhunter - Friday, March 11, 2005 - link

    You know, in some countries PPU might be confused with PUPU or in English, shit. I wish they came up with a different acronym. How about a GPPU for a Geometric Physics Processing Unit or something like that. PPU just smells...pun intended:-D Reply
  • bupkus - Friday, March 11, 2005 - link

    After Longhorn M$ may want to target a UI which uses a PPU, then every motherboard will have one. BTW, only the first chip is really expensive. Reply
  • Warder45 - Friday, March 11, 2005 - link

    $$$ Equal to a video card? Thats pretty vague. Equal to a sub-$150 video cards? That I could handle, equal to $300+ video cards, now your asking too much.

    I like the idea, and with support from Unreal 3 and all licenceing deals with the Unreal 3 engine they have a good start. Now just price them right.
    Reply
  • Quanticles - Friday, March 11, 2005 - link

    This is definitely going to happen. Everyone loves the game physics and they're required to make things realistic.

    It's too expensive to incorporate into a graphics card, not to mention it would be stealing bandwidth from them.

    I'd imagine these chips would be built into high end motherboards as well as being sold as stand alone PCIe cards. Not every motherboard would want to add this chip as it's really expensive, so it'd also have to be available as a stand-alone card.

    You cannot integrate your graphics card and sound card into a single board because there wont be enough room on the PCB. Only Apple uses graphics cards with large enough PCB's.
    Reply
  • MadAd - Friday, March 11, 2005 - link

    like a plasma television..(blah blah)???

    Its not like we cant get television without a plasma, there are many television devices but if the best a CPU can do is a few hundred bones a time (and a PPU will radicaly improve it) then its not really a fair measure is it?

    sorry to bitch but that was a poor comparison
    Reply

Log in

Don't have an account? Sign up now