Nvidia Physics Engine Almost Complete
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."
This is just a particle system. Smoke, snow, rain, and maybe water look better, but it apparently has no influence on gameplay.
...provide Linux drivers, or will the F/OSS community have to reverse-engineer this one?
Anyone care to explain why there's such a big difference between a GPU and a CPU? I keep hearing how GPU's are this and that much faster than a CPU at calculations like graphics, physics and such, so naturally I assume there's a big difference that makes us still chose the x86 and x64 CPUs as the main processors of a PC. What are the limitations; why can't just the libraries be ported for GPUs instead of CPUs and why don't we then just run all calculations on a GPU, if they are anything from 2 to 50 times faster?
:)
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!
They should test physics systems with spheres on irregular ground, with uneven μ (coefficient of kinetic friction), and changing wind.
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.
Yes, particle systems are easy (in terms of physics), because they are essentially just moving points with varying velocities and accelerations... Such a simulation is easy to vectorize (eg: update the position of all points in parallel by performing lots of additions at the same time).
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 parallelize because of the big increase in algorithmic complexity.
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.
To what extend does this contain real physics as opposed to "game" physics. Cuda maps to linear algebra fairly well but most phyics is second order (either algebraically or as differential equations). Are they actually trying to implement those or are they just making things that "look right" but really don't obey physics.
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.
Some drink at the fountain of knowledge. Others just gargle.
It's great that they can do all this physics stuff on the GPU, but they seem to be forgetting the other thing you need that for; graphics. Games like Crysis don't exactly leave room on the GPU to do anything but graphics, and throwing physics into the mix will only make things worse.
He made rough guesses at how many "frames per second" actual time runs at and how many particles there are in the universe, then asked for a simulation of it. He's asking for a simulated copy of the universe. It's funny on a lot of levels: a) he could go outside and get the same thing; b) he has an unreasonable requirement for his physics engines; c) it's absurd because it's beyond calculation; d) it's absurd because the universe can't simulate itself (simulating every particle in the universe and its calculations would require more matter/energy than there is in the universe, and since the simulation would exist in the universe the simulation would have to simulate itself within the simulation, recursively).
Of course, it WAS funny until it had to be explained.