World's First Physics Processing Unit
Duane writes "Gamers Depot has an exclusive interview with the team behind Ageia - the maker of the world's first Physics Processing Unit (PPU) - which was just announced today.
"Sure we've all heard about the CPU and GPU - that's old hat by now and as most hardware reviewers will tell you, it's about time we got something that's truly revolutionary. Yeah, Pixel shaders are cool, and can do a lot of really nice things; however, pale in comparison in scope to what the PhysX chip from Ageia has the potential to bring to gaming.""
I just finished reading the article, and this actually has some potential.
The biggest problem they're going to have to deal with, and granted, I'm not a game developer so someone can feel free to fill in the details, is that I would believe that most developers have their own method for dealing with physics - from simple collision to ragdoll and the like. The idea is "How do I tell the computer these things are touching each other' (like bullets - these are "instant shot", so the developer just says "if there's a straight line between the direction the Player A is facing, and if that line would intersect Player B, then it's a hit. If not, then miss." And algorithms like that are done by matrixes, if I'm not mistaken. Other "hits" deal with actual objects (rockets moving, goops from the goop gun, etc).
But the difference between Quake III and Unreal Tournament is more than just 'draw the graphics", it's also in how each engine deals with how those collisions are managed.
So with a PPU, you have to decide on a common library of collisions. Good news: more objects you can play with and let the PPU decide what's getting hit. Bad news: everybody's game will react basically the same and they'll have to decide if that's a good idea.
Either way, I'll wait a year or so and see what happens. Best of luck to the developers - looks like they're at least shooting for something unique.
52 Weeks, 52 Religions with John Hummel
Try the whitepapers here.
They have very good info, and little-to-no marketting BS.
I currently have no clever signature witicism to add here.
If you have a game like Unreal Tournament 2004, it is the physics processing that really kills your framerate, no matter how good your GPU. You can see this by simply swapping between the Deathmatch and Onslaught gametypes. The Onslaught world is filled with vehicles which run off the Karma physics engine, and they KILL your framerate, so that the game effectively becomes CPU-throttled, instead of GPU-throttled (which is what we are used to). A PPU is a genuinely brilliant idea, and relatively easy to implement. It will be interesting to see what the programming interface is... and whether the board runs an engine like Karma or something they've invented all for themselves. Prepare to be amazed, I think.
I'm not wrong. You haven't thought about it hard enough.
I think it would be interesting to PPUs in use in robotics. Maybe these devices can give better balance sensors - or provide intrinsic abilities for robots to know/sense how to navigate and interact within the world.
Shouldnt mechs use this to create highly mobile bipedal motion with a good ability to balance in chaotic environments (fast paced combat)
???
Pictures of boards are all well and good, and the martketing hype is fun, but we need to know.
Stick Men
"I haven't seen a proper white paper since the www took off"...
Try NASA's Technical Report Server. Very handy.
I'm not a professional developer... that said I'm developing both a robotic simulation API/framework and a game, both in my free time, both *heavily* use the open dynamics engine for physics.
The Open Dynamics Engine is free, & open source. It's not the best physics engine, by any margin. However, being open source I can afford it... and most importantly I can use it on my Mac ( hell, I actually provided some patches to get it to correctly use single-precision trig when OS X.3 came out ). Plus, I want to release my game and robot simulator under an open source license... can't expect people to *buy* novodex or havok just to build the apps.
This PPU looks like a *wonderful* thing, but reading their site, and the interview, it sounds like to use it you've got to use Novodex. That said, Novodex is awesome -- and many games use Novodex already for physics.
(Perhaps I missed something, maybe Novodex is just an API wrapper. Maybe they'll have a low-level API which you can bind to as you want. )
But the thing is, I'd like to be able to buy one of these boards and *not* have to shell out for a developer license for an API which isn't even available on Mac ( maybe it is ). Also, both my simulator and game are intended to be released under an open source license at some point. So, no novodex for me. So, no PPU for me.
Perhaps we're just a little short on data at the moment.
lorem ipsum, dolor sit amet
I would be far more excited if they had any information on how this great new chip was going to be distributed. Are they working with ATI or NVIDIA to integrate this new chip onto existing graphics cards? Might be the only way they will make use of the full bandwidth on the PCI-E slots ;)
Or are they working on getting a new type of card out onto the market? And if so, have they talked to the motherboard manufacturers on the type of requirements that it might need?
Nice announcement. And I hope that it pans out, but I would appreciate a little less "Look at our big announcement on how we will change everything" and a little more real information on how they plan to do it.
And it is definitely worth a full-on article Slashdot article of its own, but here it is anyway (Coral cache) and (Google cache with appropriate highlighting). :)
This PPU is from October 2004, and is from the creator of the Devtendo and Grand Theftendo. (both = Coral cache)
1) Games do not use Real Physics, they fake it. If they didn't fake it, you wouldn't want to play it.
Games also do not use Real Graphics (whatever that would be. Raytracing, presumably) - instead they fake it. And yet they still benefit a hell of a lot from GPU cards.
This card does not force physics to be realistic - there's nothing stopping a developer making cars that go at 600 MPH, or having characters leap a tall building in a single bound. It just enables things like that to be done much easier, and more convincingly.
2) Processors are currently faster then what programs can use(If programmed correctly). It is going to take a few years before games keep up with Processors.
Only because of your GPU. Go on, take that baby out of there and fire up Doom 3. Whoops! Where'd your framerate go?
The reason most games fly on current hardware is because they offload most of the work to the GPU. The major tasks outside of graphics are physics and AI - and the physics are getting increasingly more complex as games become more realistic.
Those lovely flying ragdoll bodies have to be calculated somewhere, y'know.
3) Why not just have two general purpose processors. Multithreading is getting pretty common. What would the added advantage between having a seperate processor just for Physics,then having two general usage processors?
Again, the same could be said about a GPU. This does bring up an interesting point, however. If this takes off it won't be long before you have a GPU, soundcard (with hardware 3D audio), PPU, probably some kind of AI hardware card...
how long before someone goes "Hey! I know! Why don't we combine all these things into a generic processor.. I know.. we could call it a.. uh.. CPU!"
Curiosity was framed. Ignorance killed the cat.
Sorry to reply to myself (it's okay, I'm AC, just pretend I'm another person), but:
PLEASE do not hammer the original website I linked to in the previous post. I did not warn the webmaster that I would be posting links to his awesome site on Slashdot, albeit in the form of Coral cache and Google cache links.
Moderators and editors: If the parent post gets moderated up, please also mod this post so people are adequately warned. I'm just trying to give a responsible heads-up here. And if an editor wants to post an article about any of Mr. Provinciano's NES-based projects that I linked to here, please feel free to cite AC as the source of the story. Thanks!
MVI $0018, R0
... er ... slightly more sophisticated. :-)
ANDI #$2, R0
BNEQ @@kaboom
Back in 1979, that's how you would have 'asked' the STIC (Standard Television Interface Chip) of the Intellivision whether MOB (Moveable OBject) #0 collides with MOB #1. Typically, MOB #0 could be a cool 8x16 pixels character and MOB #1, say, a funky 2x2 pixels bullet.
Yup: that's a hardware collision detection, commonly used to drive some important 'physics' of the game and save quite a lot of precious CPU cycles (remember that I'm talking about a 895Khz machine of the early 80's).
And no: this thing is not the World's First Physics Processing Unit! It's just
Just an example among others, of course.
The problem with Slashdot memes is that YOU INSENSITIVE CLOD!
... not the client, in MMORPG's.
The reason is the client can be hacked to allow the player do violate the rules, like walking through walls, etc.
A PPU on the server might help the server support more complex environments, more users per server, etc.
For stand alone games, and scientific applications, this is a pretty neat idea. But I don't think the power-gamers are going to be purchasing extra hardware that just sits there, while the server does the physics.
Doesn't a PCI-E slot have enough bandwidth to include a PPU on the GPU?! If a PPU is a good idea, then it would seem that nVidia or ATI could simply slap a chip on their own cards and sell them for more money.
BTW, never in my life did I ever think I'd say the phrase, "PPU on the GPU"!
If someone says he and his monkey have nothing to hide, they almost certainly do.
We've already pushed off sound, graphics, and now physics onto seperate processors. Why not just craft an entire game console onto a single card and be done with it? Jeesh.
Having a dedicated physics processor seems like an interesting idea, even if the press release here is just some vaporware.
For such a processor to succeed, we probably need some similar properties that have driven the success of the graphics processor.
1. The problem should be embarrassingly parallel.
2. We need to reduce the most common physics processing problems to a simple API and data flow model.
3. The above data flow model should offer some advantage over just crunching the data on a second or third CPU.
We can do various types of physics simulations on the CPU and the GPU today. In some cases, we can get significant speedup using the GPU, especially if we can minimize readback and redundant computation. To drive adoption of a separate PPU, it had better be possible for a more customized architecture to significantly outperform the GPU or cost much less (otherwise we could use a dual-GPU solution instead).
I'll echo this question. The PPU sounds like another form of coprocessor - vector processor, graphics processor, etc. I can understand why you'd want one in general, but if you were desigining one, I don't know why you'd limit it to (game) physics.
I'd suggest you try Half-Life 2 then. The physics model is like your own little science lab.
At one point you have to weigh down one end of a plank with cinder-blocks in order for the other end to support you.
I used to hate trying to parrellell park (can't even spell it!) in reality, but after practicing with manuvering the dune buggy in Half-Life 2 my vehicle steering skills have improved so I can do it easily.
you can also be creative in acheving the goals of the game. At one point you have to disable an electronic gate, instead of killing the guards, and fighting my way to the switch, I sniped a wooden block holding a generator trailer in place, so it rolled away, then drove at high speed through the gate without killing anyone.
A better simulation of the real world means video game skills can translate into real skills.
There's no one key item that bottlenecks a rigid-body physics engine, and it's not a simple pipelining problem like graphics, so the main thing special-purpose hardware can provide there is parallelism. And plenty of double-precision floating point power. (In a single-precision system, you have to take great care to never try to do physics far from the origin.)
Collision detection is a minor CPU load if you do it right. If collision detection is using more than 10% of your physics time, you're doing it wrong. This may seem counterintutive, but the good algorithms are incredibly fast, even in complex environments. It's more of a data structure issue.
Deformation, i.e. finite element analysis, is more of an inner loop crunch problem than rigid body physics. Finite element analysis has been parallelized for decades in engineering applications, and the problem is well understood. It's localized; you can divide the problem up into cells. So I'll bet that's what they are focusing on.