Nvidia Physics Engine Almost Complete 179
Nvidia has stated that their translation of Ageia's physics engine to CUDA is almost complete. To showcase the capabilities of the new tech Nvidia ran a particle demonstration similar to Intel's Nehalem demo, at ten times the speed. "While Intel's Nehalem demo had 50,000-60,000 particles and ran at 15-20 fps (without a GPU), the particle demo on a GeForce 9800 card resulted in 300 fps. In the very likely event that Nvidia's next-gen parts (G100: GT100/200) will double their shader units, this number could top 600 fps, meaning that Nehalem at 2.53 GHz is lagging 20-40x behind 2006/2007/2008 high-end GPU hardware. However, you can't ignore the fact that Nehalem in fact can run physics."
It's just particles (Score:3, Interesting)
This is just a particle system. Smoke, snow, rain, and maybe water look better, but it apparently has no influence on gameplay.
Re:It's just particles (Score:4, Funny)
Re:It's just particles (Score:5, Funny)
Re:It's just particles (Score:5, Funny)
Spoiler (Score:3, Funny)
Re: (Score:2)
Re:It's just particles (Score:5, Funny)
(.)(.)
(')(')
(.)(.)
Much faster
(:)(:)
So fast they're a blur
(|){|)
Re: (Score:2, Interesting)
Comment removed (Score:5, Funny)
Re: (Score:2, Funny)
Sync between machines with different cards? (Score:2)
Re:Sync between machines with different cards? (Score:5, Informative)
Huh? The local physics computations are only being used for presentation and local extrapolation. The server recomputes the relevant physics anyway, and can re-sync everyone periodically. That's how FPSes work to reduce lag--they do local extrapolation, and the server periodically snaps everyone back in line. It sometimes leads to what John Carmack calls "paradoxes" where locally displayed events get undone, but it works.
So, if some portion of your local physics calculation is purely for local presentation (e.g. game outcome doesn't depend on exactly how dirt particles fly around or boobs bounce, but you want it to look realistic), the server doesn't need to reproduce any of that to model the game correctly. Your screen might look different than someone else's, but in an immaterial way. For the super-soaker example, the server will still compute actual "wetness," possibly with a simplified model that skips computing the goosebumps and most of the dripping water.
--JoeUsing how much bandwidth? (Score:3, Informative)
The local physics computations are only being used for presentation and local extrapolation. The server recomputes the relevant physics anyway, and can re-sync everyone periodically.
Using how much bandwidth per particle?
For the super-soaker example, the server will still compute actual "wetness," possibly with a simplified model that skips computing the goosebumps and most of the dripping water.
That's kind of what I meant by "use coarse particles for game logic and finer particles for iCandy."
Re: (Score:2)
Re: (Score:2, Funny)
real physics? (Score:3, Interesting)
I recall that in the original Toy Story there is only one place they used "real physics". When the jump rope is thrown off the balcony (for the army men to descend), they used real phys
Re: (Score:3, Interesting)
I recall that in the original Toy Story there is only one place they used "real physics". When the jump rope is thrown off the balcony (for the army men to descend), they used real physics to model it's tangled fall. But thye later sent it was not a good idea to use the real physics. Not only was it harder but it didn't really look right and could not be easily tweaked. So all the rest is pretend physics.
What people perceive a situation to look like and how it would realistically look have drifted a lot. Due partially to the real life rarity of those situations and Hollywood/Video games distortion of it. We all expect shot guns to be massive overkill at medium to short ranges when in reality they don't hit that hard. We expect all explosions to involve flames. We expect bullets to hit with far more kinetic force then they do. We expect a whole lot of things that just don't happen in real life. It doesn't h
Re:real physics? (Score:4, Funny)
What are you talking about? I was just playing this game the other day where I shot a guy in the chest with my 9mm several times. He hardly moved when I shot him, and it took like 20 shots to finally take him down.
Just like real life.
Re: (Score:2)
Re: (Score:3, Informative)
Re: (Score:2)
Re: (Score:2)
I started working on my planet rendering engine (http://sponeil.net/) in OpenGL back when I had a Riva 128, and I wrote my first ray tracer a few years before 3DFX cards were even available.
Re: (Score:2)
Re: (Score:2)
Duke! (Score:5, Funny)
It'll be like 1996 all over again, only from a physics not graphics perspective. That, and there might be a new Duke Nukem game due out within the next 12 years.
Re: (Score:2)
Comment removed (Score:5, Interesting)
Re:I couldn't find anything specific - will nVidia (Score:5, Informative)
So, physics should work on Linux, having been ported to CUDA already, and CUDA being cross-platform, but the question is if any Linux games will actually support and/or make use of it.
Re: (Score:3, Insightful)
Re:I couldn't find anything specific - will nVidia (Score:5, Informative)
Re: (Score:2)
Re: (Score:2)
Re:I couldn't find anything specific - will nVidia (Score:5, Insightful)
The *only* use?? Geez, I'd like to get my hands on the API to write some physics educational/demonstration software. Or just create physically accurate simulations for kicks. We don't *have* to rely on others to write software for us.
Re: (Score:2, Insightful)
Re:I couldn't find anything specific - will nVidia (Score:5, Informative)
Anyone ever tell you that a lot of scientific types use Linux on their workstations? They do.
Re: (Score:2)
Yeah, because Unreal Tournament 3 won't use nVidia's accelerated features or be ported to Linux at all. </sarcasm>
Plus, I wouldn't be surprised if (once this technology catches on) the Wine folks make a pass-through library that allow Windows games to take advantage of this feature when running under Linux.
Re: (Score:2)
Re: (Score:2)
Next you're going to be telling me the WINE guys are working on a wrapper for openGL...
Re: (Score:2)
snippet from wine/dlls/opengl32/opengl_norm.c:
Re: (Score:2)
Re:I couldn't find anything specific - will nVidia (Score:2)
Comment removed (Score:5, Funny)
Re: (Score:2)
Is particle motion a fair test case? (Score:5, Informative)
When I was getting up to speed on IBM Cell programming, IBM had a programmer's tutorial (excellently written, btw). The example problem they used for their chapter(s?) on code tuning were a particle simulator. It was a wonderful example problem, because it showed how to vectorize a program. But then when we went to vectorize our own algorithm, it didn't fit the Cell's vector programming instructions nearly as cleanly, so in the end we didn't get nearly the performance increase due to vector instructions as did the particle simulator.
So I'm thinking that just even though CUDA can do a good job with particle motion simulations, we shouldn't remotely assume that it's good for particular algorithms for which each of us is responsible.
Re: (Score:2, Interesting)
Actually useful collision detection of say, convex volumes with rotational velocities, with the volumes being stored in a 3D space partition (eg: kd-tree or BSP tree) will likely prove significantly more difficult to parallel
Re:Is particle motion a fair test case? (Score:5, Interesting)
That's exactly why I'm skeptical of CUDA in general. Rendering graphics is one of those "embarrassingly parallel" operations, where for every frame rendered, each triangle, vertex, and pixel is independent of the others. I don't know much about physics processing, but I'm guessing it's the same. Simply throwing say, 4x more hardware at the problem gives you pretty much the ideal 4x speedup. Once you introduce random data dependencies into the problem, though, parallelization is much harder and you don't get the same speedups.
There are a lot of easily-parallelizable problems out there, which is great...but then again, there are a lot of not-so-easily-parallelizable problems out there too. I don't think CUDA would do any better than a general-purpose CPU on the latter class of problems.
Re: (Score:2)
Then .... use CUDA for the former and the CPU for the latter? What was your point again? :)
Re: (Score:2)
I think I was too generous when I said "a lot of easily-parellelizable problems out there". The rest of them (besides graphics and physics) are in the HPC community - protein folding, SETI, that sort of thing - the stuff people run on BlueGene. Not something your average, everyday user is going to experience, at least not in the near future.
So then, what's the real benefit of CUDA == GPGPU == general purpose processing on a GPU, if it only speeds up a certain class of general-purpose problems? It starts
Re: (Score:2)
The moment you have to do collision detection or more detailed constraints, you have a lot more dependencies to work with. Although you can still massage the data into more para
Couldn't agree more (Score:2, Informative)
A GeForce 8800GTX has 16 multiprocessors, which each have 8 processors, so a total of 128 processors. It's your basic SIMD (single instruction, multiple data) architecture. So if you have lots of conditions, you go from having 128 processors, to having 16 as your code serialize
Re: (Score:2)
Particle motions is an abnormally parellelizable case, the only better example is graphics. So the many core solution runs a lot better than the quad-core one, given simple calculations. That doesn't scale to more inolved calculations on fewer (or more interdependent) bodies.
So (Score:3, Funny)
Re:So (Score:5, Informative)
Experts please explain something (Score:5, Interesting)
It just seems to me that if a graphics card can calculate physics then it would also be able to do pretty much all the same types of calculations that a regular CPU can do, but I am obviously missing a big part of it.
Experts, continue!
Re: (Score:2)
CPU = Jack of all trades, master of none; GPU = the highly trained specialist.
Re: (Score:2)
Re:Experts please explain something (Score:5, Informative)
As a result, the massively parallel hardware on a GPU that exists to render many triangles/pixels/shader programs/etc at once can be exploited to calculate updates for many particles at once. The CPU is at an inherent disadvantage because it is only leveraging a small subset of it's full capabilities.
The CPU is very good at *lots* of different tasks. The GPU is phenomenally good at a very specific set of tasks. Physics just happens to fit within that set.
Re:Experts please explain something (Score:5, Informative)
Think of a CPU as a big tool box. There's something in there for every task, including a screwdriver that can be used to put screws into things. Then next to it, you have a big cordless 18 volt drill (The GPU). Way easier to drive screws with that than the manual screwdriver in your toolbox. But when you need to drive a nail instead, yeah you could bash it in with your screw gun, but it's easier to go back to your toolbox and find a hammer.
I guess that would make a physics processor the nail gun. Or something...
Re: (Score:2)
GPUs have totally pipelined and highly parallel ALU units available to it. Like 64 and 128-way parallelism on 4 channels at once. Compare this to an 8-way CPU system on 2-SIMD operands at once, at between 2 and 4 times the clock rate.
The other thing is that GPUs have special calculation ALUs that for doing multiple ops at once that are better designed than SSE-2 which is too primitive.
GPUs just win because they don't need to m
Re: (Score:3, Informative)
Applying a complex formula millions of times, each time with a different set of coefficients? -> GPU.
GPUs fail at tasks where lots of synchronization or frequent branching is necessary. Stuff like game logic, for instance, or state machines. Your typical office application is
Re: (Score:3, Informative)
On my Mac Pro, I have 8 3GHz CPU's. Consider that the baseline.
I have 2 8800GT cards to drive the 30" and 2x23" (rotated, one each side of the 30"
Now stream processors aren't quite the same as general purpose processors, but the way they're imp
Re: (Score:2)
Re: (Score:2)
What, am I the only one here who can think outside the SLI box? You only need something like SLI if you want to combine the results, or if you have to resolve dependences. And while I'm sure there are ways to use SLI with CUDA, you don't necessarily have to.
Re: (Score:2)
Re: (Score:2)
If you've got an algorithm where all the pixels/particles/whatever act independently, then the massively parallel architecture of the GPU is for you. If you don't, then you've got to have a CPU.
If those particles are all moving independently then the GPU gives you a tremendous speed boost. If the particles depend on each other, say, they're charged, then your GPU isn't going to help you out much, but your CPU can do the calculation just fine.
The
Re:Experts please explain something (Score:5, Funny)
Re: (Score:3, Funny)
Re: (Score:2)
Re: (Score:2)
The Cell processor *can* do double-precision calculations.
Why particle systems? (Score:5, Interesting)
Those are the kind of problems that force programmers to use approximations when using a physics engine.
The next step is really abstracting the physics from the development, not having pretty water.
Re:Why particle systems? (Score:5, Interesting)
They should test physics systems with spheres on irregular ground, with uneven (coefficient of kinetic friction), and changing wind.
I always liked to test on the hard cases (see my web site) but, in fact, what game developers and animators want is not realistic physics. The game people want "infinitely destructible environments", where you can blow up anything. And, of course, eye candy. The animation people want physics they can direct, where the starting and ending positions are specified but what happens in the middle might be automated. So most character motion in video games is spliced-together motion capture bits, hand animation, and a bit of physics now and then.
Most game physics engines today cheat on the hard cases, but by now, they usually cheat in ways that don't do something blatantly nonphysical.
My original goal, back in 1996 when I was working on this, was to get to a two-person fighting game with real martial arts. The physics engine we had was good enough, although in the era of 200MHz CPUs, a bit slow. But a control system that can do a judo throw against an uncooperative opponent is still out of reach. Worse, controlling a physically realistic martial arts character through a game pad is just hopeless. Play would be like a typical day at the dojo: "You lost your center. Your left foot should have been further forward when you tried that throw." "Yes, sensi". Work out three times a week for a year, and you get to be halfway decent. As a game, that sucks.
So I created the "ragdoll falling downstairs" cliche as a demo, licensed the technology to a middleware provider, and went on to other things.
Re: (Score:2)
I think his test would be a great test... the infinitely destructible environments? Each piece of the destructing thing needs to interact with each other piece in a logical, rules-based fashion, even if it's at 1/5th the gravity of "reality", or no friction, whatever.
Oh really? (Score:5, Funny)
In fact, I can.
nested particles (Score:2)
but is there such thing as netsted particles?
Full objects, made of "bound particles" (polygons that when constrained to eachother act as an object) but that whole object can be a particle?
Then if destroyed the resultant triagles themselves become particles?
I ask in that I would like to know if a whole seemingly static scene can really be generated/destroyed/interacted with as if everything were particles...
Or is this how things are already done??
It just seems to me that super-particles is
Re: (Score:2)
Re: (Score:2)
They had the first (second) Star Wars Trilogy on TV last night and I got all in the Jedi mood - so its great to hear about this now.
Re: (Score:2)
http://www.lucasarts.com/games/theforceunleashed/ [lucasarts.com]
Go in the Media gallery, pick the category Web Docs/Videos, and watch "Unleashing the force".
A little after 1/3rd of the way through, they talk about DMM (Digital Molecular Matter, or something like that), and thats what im refering to. I'm sure its nowhere as sophisticated as they make it sound, but still, it looks cool
Re: (Score:2)
But I've only
Real Physics engine goal (Score:5, Funny)
Re: (Score:3, Funny)
Re: (Score:2, Interesting)
Finally a use for the embedded GPU... (Score:2)
Re: (Score:2)
what's with physics? (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Oblivion's physics aren't as complex as they appear. They're just rigid body collisions. That lets you set up Rube Goldberg contraptions and domino stunts in the construction set (complete with comical Altmer abuse in some of the videos I've seen), but it's pretty shallow as far as simulations are concerned. If Bethesda had gone for dynamic destructible environments, then maybe, maybe, grass
Re: (Score:2)
What about graphics? (Score:3, Interesting)
Re: (Score:2)
Instead, you need to have either another CUDA capable graphics card on your system or a Tesla. Another option is to run your program on Linux without an X server.
I'm currently finishing up my senior seminar on CUDA. It's some neat stuff, and I can't wait to see it have everyday uses. In general, data parallel algorithms are easier to implement with CUDA than somethin
Re: (Score:2)
I'm also using CUDA for my master's thesis right now. It's no problem mixing CUDA with OpenGL or Direct3D, in fact, there's even an API for connecting them. If you have some calculation that takes more than 5 seconds to calculate, your code isn't suited for real-time computer graphics anyways (your kernel should only take <20ms to execute, otherwise your frame rate is too low for real-world usage).
In this way, I've let my program run for an hour without any issues.
The only issue with CUDA for games is
Good particle physics models, eh? (Score:2)
Re: (Score:2)
'Hegde stressed that the PhysX engine does not include quantum mechanics because the company "focuses on physics for fun and entertainment".'
640k particles are enough for everyone! (Score:2, Funny)
Re: (Score:2)
Layne
Re: (Score:2)
As a general rule, with most current algorithms used for physics calculations on a PC, the higher the frame rate, the more accurate the physics will be and the better your collision detection will be since it can more accurately find the point of a collision rather than saying 'yea a collision occurred, now backtrack slowly to figure out when it occurred and then go forward again with the response to get back to the current time step' now your amount of back tracking and replying is considerably s
Re: (Score:3, Informative)
Wow ! That's more than 4 times faster than the human brain can detect. Now if I only knew why a frame rate this high is needed. Anybody?
It's not needed. But it's useful for comparison.
Nehalem only got x frames per second, but nVidia Magic Goodness 9800 Large Numbers GTX got y FPS, where y > x, can show that nVidia MG9600LNGTX > CPU.
Also, presumably this won't be used to run 50,000 particle games at 300fps, but much more complicated simulations (infinitely destructable environments, not line
Re: (Score:2)
More to the point, though, this is a benchmark. The monitors most people use today don't go over 75 fps. No one claimed that 300 fps was needed before you brought up the topic. If it can run this particular simulation at 300 fps and the CPUcan run it at 15 fps, then when the scene is more complex and the CPU is at 2, the GPU will still be at 30. Or, alternatively, that means that
Re: (Score:2)
Running it using less power.
Running it cooler (no need for fan).