Nvidia Physics Card?

Post Reply
Erin Catto
Posts: 316
Joined: Fri Jul 01, 2005 5:29 am
Location: Irvine
Contact:

Nvidia Physics Card?

Post by Erin Catto »

User avatar
SteveBaker
Posts: 127
Joined: Sun Aug 13, 2006 4:41 pm
Location: Cedar Hill, Texas
Contact:

Re: Nvidia Physics Card?

Post by SteveBaker »

I think that article is a misunderstanding. nVidia's approach (as is mine - see the 'GPU Physics' thread, http://continuousphysics.com/Bullet/php ... .php?t=500) is to use the features of an absolutly standard graphics card for doing physics computations. They may have provided a slot on their motherboard for an additional GRAPHICS card - whose function is reserved for doing physics - but there is (as far as I know) no push within nVidia to make dedicated physics hardware.

There is a real chicken-and-egg problem with physics hardware that's evident with the one and only 'PPU' card on the market - the 'PhysX'. The problem is that game programmers won't base their entire game around the existance of a chunk of hardware that hardly any game players actually own. At best, dedicated physics hardware might allow somewhat nicer particle systems and building collapse animations and such - but it can't possibly play a significant part in game play because that would limit the number of people who would buy the game to a TINY fraction of the marketplace. Nobody will do that.

So for gamers, only the hardest of hard-core players are going to spend hundreds of dollars for something that won't give them any advantage over other players and which won't do anything at all in 90% of the games out there.

So - nobody buys the hardware, nobody makes the games and nobody buys the hardware.

Contrast that with nVidia's approach. Everyone has a graphics board - and if they are running the latest games, they probably have a pretty good one. Games manufacturers can choose to use some fraction of that graphics card's performance to accellerate physics. The benefits of doing that come to ALL games players who have modern cards - so it's perfectly possible to base fundamental game-play on the existance of hardware-based physics.

This encourages gamers to upgrade their graphics cards sooner than perhaps they otherwise might - which is good for nVidia.

Even if you have a SECOND graphics card just to run the physics in physics-intensive games, that can be your old card that you had left over when you upgraded the card for better graphics - or maybe you can be SLI'ed two modern cards together - so in physics intensive games you use one for physics and one for graphics - but in games that don't use physics, you use the SLI capability to make your graphics run twice as fast.

Everyone wins.

Developing custom hardware for a PPU is EXPENSIVE - the research and development costs are horrific. On the other hand, using a cheap, plentiful GPU chip (which has a pretty suitable architecture for physics) is an easy option that's going to be similar in performance. (There is actually evidence that the nVidia physics implementation on a GPU is actually faster than PhysX on it's custom PPU!)

If nVidia's approach works - then MAYBE there will eventually be enough physics-intensive games out there to make a physics-only card become commercially viable - but we are a long way from that. I think it's more likely that the next generation of graphics cards will instead gain features to make it more friendly to physics software - something which I see signs of already.

So I'm pretty sure that dedicated physics-only hardware is a LONG way off - but I don't care because physics-on-a-GPU is very do-able (and indeed I'm working on that for Bullet right now!)
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Post by Erwin Coumans »

So I'm pretty sure that dedicated physics-only hardware is a LONG way off - but I don't care because physics-on-a-GPU is very do-able
It is more about going parallel and how to deal with memory caching, rather then 'optimizing' the processor for physics.

Playstation CELL's multiple SPU processors headed for this direction too (so does multi-core CPU's, although they don't solve the memory caching issues, L2 cache misses are the main bottleneck in physics and other calculations, so you need to predict memory access to get decent performance).

GPU's are massively parallel and deal with efficient memory access, but they are not flexible enough for the most 'complicated' physics algorithms, so the CELL SPU/multicore is still a benefit for accurate physics/collision detection. 'complicated' refers to both code complexity and branching, as well as difficult to predict random-memory access.

Still, its very interesting to taming those new parallel processors!
Erwin
User avatar
SteveBaker
Posts: 127
Joined: Sun Aug 13, 2006 4:41 pm
Location: Cedar Hill, Texas
Contact:

Post by SteveBaker »

Erwin Coumans wrote: It is more about going parallel and how to deal with memory caching, rather then 'optimizing' the processor for physics.
Well, there are some features that would make physics massively easier on the GPU. One of those would be the ability to write to multiple output textures instead of just one. That feature is definitely being discussed by the OpenGL ARB and will probably appear next year or so.
GPU's are massively parallel and deal with efficient memory access, but they are not flexible enough for the most 'complicated' physics algorithms,
That's true - but they are getting better. Each new generation of GPU makes the shader processors a little more like conventional CPU's (for example, non-inlined function calls were added in the more recent processors).
so the CELL SPU/multicore is still a benefit for accurate physics/collision detection. 'complicated' refers to both code complexity and branching, as well as difficult to predict random-memory access.
...which is fine for game consoles - but not so great for regular PC's because the adoption of CELL in the PC suffers from the exact same chicken-and-egg problem as the PhysX engine.
Still, its very interesting to taming those new parallel processors!
Yes! Figuring out how to do some of these things in the GPU is definitely stretching my brain in directions it's never been in before. Writing shaders is the most fun thing I've done in many years.
Post Reply