Advertisement

physx chip

Started by April 20, 2006 07:42 PM
223 comments, last by GameDev.net 18 years, 5 months ago
Quote: Original post by C0D1F1ED
Quote: PhsyX vs Pentium XE 840 HT

What's the source of this video? Ageia? Of course they will show a demo with a badly optimized software version! Don't be fooled by that. Their marketing is perfect, they want to sell the hardware, but I'm only interested in the capabilities of the product in a real situation versus optimized software.

Besides, a 6+ GFLOPS CPU not capable of handling 6000 objects at more than 5 FPS? Please. That's 200,000 floating-point operations per object. Two-hundred-thousand! Unless you're doing some really stupid brute force collision detection that's a vast amount of processing power.


That demo seemed like a rocket demo (Ageia PhysX demo framework), and i think you can download the demo (not 100% sure tough). See for your self, there are various demos in that suit and compared to other physics engines i saw, they are weary fast and accurate.

IMO a thing to note from video is that using PhysX card the CPU usage is minimal merely for updates. Even if CPU can calculate physics as fast as PPU, PPU is still useful since CPU can't be dedicated to physics only. And havening realistic-real time physics solution is worth couple of hundred $ for a true gamer, since PPU should not have the tendency to upgrade constantly like GPU (every couple of months), and anyway a person who can afford dual core CPU (like you proposed) and other equipment can probably afford the extra $ for PPU.
Ageia PhysX simulation can run in software and is probably optimized for next gen consoles (it is available for X Box 360 & PS3) , since PC CPUs aren't built with that much vectorized units, PhysX card is a good replacement.
The only real barrier i see is the lack of the games for PPU to be useful ... but this is going to change i hope ...
Quote: Original post by Cubed3
How did you calculate the sphere-sphere collisions? Im qutie curious :P

// Vector between sphere centersmovaps xmm0, c0xsubps xmm0, c1xmovaps xmm1, c0ysubps xmm1, c1ymovaps xmm2, c0zsubps xmm2, c1z// Length calculation (reciproke)mulps xmm0, xmm0mulps xmm1, xmm1mulps xmm2, xmm2addps xmm0, xmm1addps xmm0, xmm2rsqrtps xmm0, xmm0// Compare to sum of radiimovaps xmm1, r0addps xmm1, r1mulps xmm0, xmm1cmpltps xmm0, one

Some explanation might be needed: This calculates sphere-sphere collision of four sets of spheres in parallel. Also, rsqrtps calculates the reciprocal square root at half precision. To avoid using rcpps to invert that again (and lose more precision than acceptable), I multiply by the sum of the radii (1/x < y becomes y/x < 1). So this is 16 instructions for 4 tests, or 4 instructions per test. Which should bring us to the number I wrote earlier. This is obviously peak performance but I'm pretty sure Ageia counted their performance in the same way. Strictly speaking there's a movmskps needed to get the final results but that's compensated by the fact that movaps instructions are not arithmetic and will be executed in parallel by the load/store units.
Quote: Also the source of the video is from ageia of course... But the software physics is being done via NovodeX which is a very optimized physics engine.

NovodeX is an Ageia product. If it runs several times slower than optimal then that doesn't really hurt Ageia. And for this demo they wanted PhysX to look good so I wouldn't be surprised if they crippled the software version to make it look even better (e.g. by forcing a brute-force approach).

Part of the problem is that we don't have independent benchmarks and quality specifications for physics in games yet. But I think we can expect that to be standardized pretty soon.
Quote: 200,000 floating point operations per object? Is that per frame or per second?

Left your pocket calculator at home?
Advertisement
Quote: Original post by RedDrake
That demo seemed like a rocket demo (Ageia PhysX demo framework), and i think you can download the demo (not 100% sure tough). See for your self, there are various demos in that suit and compared to other physics engines i saw, they are weary fast and accurate.

I'm sure it's pretty fast and robust. They can't create hardware suited for physics calculations without superiour knowledge and excellent software. But that doesn't mean it's absolutely optimal yet, and the comparisons are fair. By the way, what other physics engines did you compare it with? Most freely available physics engines are C/C++ code that use suboptimal algorithms (lack of knowledge) and no SSE (for portability). It can't be that hard for a professional product to beat that. But in the comparison demos they specifically wanted PhysX to look good. They know it's hard to market so a bit of cheating has to be very tempting... They pretty much have a monopoly anyway and using non-standardized benchmarks works in their favor.
Quote: Even if CPU can calculate physics as fast as PPU, PPU is still useful since CPU can't be dedicated to physics only.

You can pretty much dedicate a whole core to it with dual-core processors.
Quote: ...and anyway a person who can afford dual core CPU (like you proposed) and other equipment can probably afford the extra $ for PPU.

Within a few months, Intel's Conroe processors will set new performance records for a very modest price. This is extra dual performance that will soon be available for all games, and for other applications as well. So you won't need big investments to run impressive games with great physics. Buying a 250 $ card with a PPU really seems like a waste of money to me. Of course there will still be people who buy it anyway.

This is just my personal opinion of course. I just think multi-core CPUs have more future than PPUs. In three years from now, I envision 5+ GHz octa-cores with improved SIMD units (higher issue width, reverse hyper-threading) that are capable of doing everything except the heaviest graphics work. I don't see PCs with weak CPUs and a third processor. Both Intel and AMD produce the most advanced chips on the planet and the competition between the two will yield some very interesting results.
honestly, i don't see the big deal. a dedicated PPU processor takes the math intensive load off the CPU. the GPU does its regular job. If you have a dual core chip or two processors you can use the other core/processor for AI. Plus if the chip is made specifically for physics processing it's going to beat a CPU/core hands down.

Beginner in Game Development?  Read here. And read here.

 

Quote: Original post by Alpha_ProgDes
honestly, i don't see the big deal. a dedicated PPU processor takes the math intensive load off the CPU. the GPU does its regular job. If you have a dual core chip or two processors you can use the other core/processor for AI. Plus if the chip is made specifically for physics processing it's going to beat a CPU/core hands down.

Do you really expect everyone who wants to play games 'the way they are meant to be played' to buy an extra card? It's simply not economical. For my next PC I don't want to be forced to choose yet another component. Also think about laptops, where the trend has been to integrate everything in the least amount of components and keep it cool as well. And laptop sales have surpassed desktop sales, but people expect to be able to play games on them almost equally well.

And where's the limit really if we introduce more dedicated hardware into our systems? There have been speculations about A.I. chips as well (this is the A.I. forum after all). But A.I. uses mainly integer calculations so another chip would have to be added if the CPU isn't considered fast enough. This adds even more bandwidth and synchronization overhead. And while we're at it lets add a chip for volumetric sound propagation, with a specialized architecture for accessing advanced data structures. Heck, why not implement each game separately as a chip? Ok, I'm getting ridiculous now but I had pretty much the same feeling when I first heard about a physics chip for games. It's a reasonable idea for consoles, but PCs have to be general purpose to keep the complexity manageable.

Besides, like I said before, let's not underestimate CPUs! In the Quake era people knew how to get the best performance out of every clock cycle. Nowadays an average programmer doesn't understand software performance beyond big O. They also expect the compiler to optimize their crappy code and blame the CPU when it doesn't run at the expected performance (instead of themselves). I personally have optimized several applications by 2-5 times using assembly code and improving the design in the right spots. Last but not least, CPU manufacturers finally realized that clock frequency isn't everything, and started to focus on vast improvements in IPC and thread parallelism.

If extra processing power is really absolutely required then I see a lot more future in using the GPU for physics. Especially with DirectX 10 and unified architectures, GPUs will be pretty much a huge array of SIMD units anyway. Borrowing a few GFLOPS shouldn't be much of a problem, and there would be little or no overhead to get the results from the physics stage to the rendering stage. So even if I'm wrong about future CPU performance, PhysX still has another huge threat.
Quote: Original post by C0D1F1EDInvesting in a robust physics engine would have made all the difference.


Funny, because Oblivion is powered by Havok. :)
Advertisement
Quote: Original post by NickGravelyn
Quote: Original post by C0D1F1EDInvesting in a robust physics engine would have made all the difference.

Funny, because Oblivion is powered by Havok. :)

Indeed, thanks for the info. I can't see such bugs in Half-Life 2 and it's powered by Havok as well. So apparently the integration of Havok didn't go too well. It's again a lack of knowledge as far as I can tell...
1) I like the idea a specialized CPU for particular types of tasks, but this hardware only runs a single phsyics library. Unless this libary works for physics research (which seems unlikely, as games take shortcut all over) or they provide a scientific version of the lib (not sure what the profit margin is there), this first generation of cards seems very limited.

2) The library runs on next gen hardware, but I would be careful about comparisions with the cell. This hardware has 128 megs of dedicated memory - the cell spus have 512k each and require custom programs to run on them. I am sure they leverage the spus, but I don't know how similar the implementations would be under the hood.

3) Until these cards become mass market, games won't be able to rely on them being present. Until then, they will likely increase your framerate/add visual candy but little else. That said, that may be enough to sell them. They may take off, but I doubt they will become big for several (4-8) years.

4) Half-Life 2 physics look good because Valve got a source code license and spent a bit chunk of time customizing/rewriting it (something like a year+). I am sure the content/tweaking/polish played a bit role too.

Honestly, I wouldn't be surprised if companies do start coming out with games that have different levels of physics or require the PPU altogether. Afterall, Oblivion can't run on most PCs because the video cards it recommends start at X800 (and even that can hardly handle it), so the belief that companies one day may require this for certain titles isn't out of the question.

In today's world, it just comes down to the cash you want to pay to play. Some people would rather spend $250 and have developers utilize that technology (if only for a minority) and create a very physically realistic experience.

As I said before, my next PC will have the PhysX chip. I will probably make a game that relies on the hardware because I am such a huge fan of intense physics as well as the improvement to the AI that could be done utilizing CPU power that is freed by outsourcing the physics.

And City of Villains is actually about to support the PhysX chip to allow for more particles and more destructive environments. http://ve3d.ign.com/articles/697/697302p1.html

Quote: Original post by C0D1F1ED
If extra processing power is really absolutely required then I see a lot more future in using the GPU for physics. Especially with DirectX 10 and unified architectures, GPUs will be pretty much a huge array of SIMD units anyway. Borrowing a few GFLOPS shouldn't be much of a problem, and there would be little or no overhead to get the results from the physics stage to the rendering stage. So even if I'm wrong about future CPU performance, PhysX still has another huge threat.

But that's just dumb as well. Why continue to make the GPUs huge and expensive so they can power physics, something they were never meant to do? I think the 'using GPUs for physics with DX10' thing is just dumb. And honestly, comparing Ageia's physics demos with their PPU vs the Havok/nVidia videos, Ageia wins hands down. Maybe it's just the demos, but I personally don't think that using GPUs for physics will work out as well as everyone hopes. My card (an X800) is still striving hard to run BF2 on highest settings. If they were to take away from the rendering power for physics, I'd be more than upset because essentially instead of saying "You have to buy this PPU to play our game." they are saying "You need to buy nVidia's top-of-the-line GPU because, although the rendering could be done on an X800, we are using your GPU for physics as well." Clearly it's not as large of a deal now, but to achieve what the PhysX chip can do, the GPU requirements for games will go from the top about 20% of cards to the top 5% of cards.
Quote: Original post by NickGravelyn
Honestly, I wouldn't be surprised if companies do start coming out with games that have different levels of physics or require the PPU altogether. Afterall, Oblivion can't run on most PCs because the video cards it recommends start at X800 (and even that can hardly handle it), so the belief that companies one day may require this for certain titles isn't out of the question.

In today's world, it just comes down to the cash you want to pay to play. Some people would rather spend $250 and have developers utilize that technology (if only for a minority) and create a very physically realistic experience.

I'm sorry but that's just silly. I'm playing and enjoying modern games on my budget laptop with integrated graphics. I don't want to be forced to pay several 100 bucks extra just so a game is runnable. I'm sure there are always people willing to spend all their money on new hardware but a game with insane demands will just not sell enough copies. Optimizing a game for mid-end systems vastly increases the market.
Quote: And City of Villains is actually about to support the PhysX chip to allow for more particles and more destructive environments. http://ve3d.ign.com/articles/697/697302p1.html

I still want to see proof that a dual-core wouldn't be capable of handling that. They talk about 10 times the number of particles. If the physics processing budget goes from 10% to 100% thanks to dual-core then the exact same thing is possible.
Quote: But that's just dumb as well. Why continue to make the GPUs huge and expensive so they can power physics, something they were never meant to do?

GPUs and PPUs are not that much different. Each has a number of SIMD units with a very similar instruction set. Especially the DirectX 10 generation will be capable of efficiently processing floating-point intensive tasks other than vertex and pixel processing. There's nothing in the PPU that makes it any better suited for physics.
Quote: If they were to take away from the rendering power for physics, I'd be more than upset because essentially instead of saying "You have to buy this PPU to play our game." they are saying "You need to buy nVidia's top-of-the-line GPU because, although the rendering could be done on an X800, we are using your GPU for physics as well."

What's the difference, really? If I invested the price of a PPU into my graphics card it would have plenty extra FLOPS to perform the physics. I'd have SLI actually... But the most interesting thing is that people have a choice to buy a budget graphics card and still be able to play their games, even if at lower detail. What's best, playing a game at slightly lower detail or not playing it at all?

The same is true for dual-core. Budget versions are on their way and their extra processing power will be available for every application. By the time I see a PPU card in my local store Intel will have a worldwide lauch of Merom/Conroe based processors. Not to mention DirectX 10 will appear around the same time.

Everyone has a CPU and a GPU. Relying on a third processor that only a fraction of end-users will have is crazy. Worst of all is that it's not cost-effective at all.

This topic is closed to new replies.

Advertisement