Slashdot Mirror


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."

179 comments

  1. It's just particles by Animats · · Score: 2, Interesting

    This is just a particle system. Smoke, snow, rain, and maybe water look better, but it apparently has no influence on gameplay.

    1. Re:It's just particles by Dr.+Eggman · · Score: 3, Funny

      Super-soakers Online! Cloth and liquid simulations determine who got wet, how wet, and whether or not that means they're out!

      --
      Demented But Determined.
    2. Re:It's just particles by Anonymous Coward · · Score: 2, Funny

      because if Portal taught us anything, its that modern games have no need for physics!

    3. Re:It's just particles by grahamd0 · · Score: 5, Funny

      EA Presents: Cancun Wet T-Shirt Contest 2K9!

    4. Re:It's just particles by Mastadex · · Score: 5, Funny

      With what is promised by this physics engine, you will be able to tell between all natural and fake boobs. Its all in the bounce!

      --
      A morning without coffee is like something without something else.
    5. Re:It's just particles by Dekker3D · · Score: 1

      i'm a hobbyist programmer... and can't even count the number of times i've wanted to make something like that :P
      just never had the time, sadly enough...

    6. Re:It's just particles by r0bVious · · Score: 0

      IMHO, the two biggest things you should worry about in game development: Amusement and Immersion. Sometimes they go hand in hand, sometimes they don't. I'm amused by Peggle, I'm immersed in something like Bioshock. I suppose I'm also "amused" by Bioshock, but hopefully you're following my logic here. ...that being said, graphics and presentation are oftentimes huge in "immersion". I've never been one to tout graphics over gameplay, but I maintain that graphics (among other things) help proper immersion, and proper immersion makes facilitate great gameplay.

    7. Re:It's just particles by SickHumour · · Score: 1

      So it's all smoke and mirrors?

    8. Re:It's just particles by Anonymous Coward · · Score: 2, Funny

      Mod +6: This comment goes to 11.

    9. Re:It's just particles by Anonymous Coward · · Score: 0

      Yes... Nvidia is obviously just blowing smoke on this one.

    10. Re:It's just particles by tzot · · Score: 1

      Like what? Like the 'Breast Bounce Technology' of Lula 3d?

      --
      I speak England very best
    11. Re:It's just particles by s_p_oneil · · Score: 1

      Of course not. It was the same with PhysX. No game developer could release a game that required a PhysX card to play because so few people had one. I wouldn't expect to see games where gameplay has been improved by this until 1-2 years after it is available to everyone. Although if it only works on nVidia cards, we still may not see much until ATI has a similar offering. Game developers always have to account for the lowest common denominator, and that's usually ATI (unless you count embedded chipsets like Intel's).

    12. Re:It's just particles by CastrTroy · · Score: 2, Informative

      You obviously don't remember what it was like when 3D cards first came out. There were many games that were Glide only. Meaning that you had to have a 3DFX graphics card to run them. Back when sound cards first came out, this also happened. You had to have a sound blaster, or Adlib, or Gravis ultrasound, and again only certain cards would work with certain games, I imagine that physics cards could probably work in the same way. Require that you use a certain physics card, or you don't get to play the game. Eventually things will get standardized, and you will get to use any physics card for any game, but I don't think that it's necessary right from the start.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    13. Re:It's just particles by bckrispi · · Score: 1

      More than likely, the physics will be offloaded to the CPU for users w/out a physics card. Most of the 1st gen 3D games would have an option where you could run the game with software rendering.

      --
      Xenon, where's my money? -Borno
    14. Re:It's just particles by s_p_oneil · · Score: 1

      There are two things wrong with your argument. The first is that you're wrong, and the second is that your argument is moot because you're not even arguing about the same thing. The argument was about whether it was allowed to affect gameplay. Glide did not affect gameplay, it just made games look nicer and run smoother.

      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. Don't bother trying to tell me that I don't remember when 3D accelerated graphics was new. ;-)

    15. Re:It's just particles by hedwards · · Score: 1

      This was largely my thought. They're probably going to be focusing on things like water, smoke and shards of glass first. As the technology has become more common the programs will likely start to make use of it in areas which are increasingly complex to start. The reason being that those are things which can be done simplistically on present technology, but can be greatly scaled without much additional work. They're also things which can add significantly to the mood and the immersion quality of the gaming experience.

      As you're suggesting, the physics accelerator isn't going to be competing much for processing power, with the exception of a bit of bandwidth and a few cycles to send the information over, there should be very little load on the processor. And that'll be more than compensated for by the relevant optimizations which are undoubtedly included in the accelerator.

      Crysis is actually a very good example of how it could work. Games that have scaling graphics are really where the industry is moving and will be eventually. As processing power and storage space increases, there's far less disadvantage to using a vector format to handle strategic portions of the gaming. Game physics is going there as well, there just isn't any good reason not to. A specialized processor for something like physics might only make it into cards aimed at people that game or use applications that can benefit from the power, but even now there's a difference between the cards for typical use and specialty use.

    16. Re:It's just particles by Dekker3D · · Score: 2, Interesting

      no.. multiplayer wet t-shirt deathmatch. ;)

    17. Re:It's just particles by ProfessionalCookie · · Score: 1

      OpenPL anyone?

    18. Re:It's just particles by Solder+Fumes · · Score: 5, Funny

      Slow motion

      (.)(.)

      (')(')

      (.)(.)

      Much faster

      (:)(:)

      So fast they're a blur

      (|){|)

    19. Re:It's just particles by vikstar · · Score: 1

      Exactly. I don't know how they can use particles as a benchmark for the effectiveness/speed of a "physics" engine.

      A proper rigid-body dynamics engine includes multiple joint types from revolute (hinge) joints to ball-and-socket joints to universal joints etc. Also a collision detection engine with correct collision responses including friction.

      Most importantly, it should be stable. That is, if you attach a small low-mass body to a large high-mass body and run the simulation then the two should not suddenly unprovokingly tear appart and fly in various directions.

      I would only be impressed if the physics demo contained something like hundreds of rag-doll characters (with hands and feet), where real physical calculations need to be performed between each joint-connected body and the collisions. It is also important to ensure that the calculations are performed correctly, not simply approximated for speed to make your benchmark look nice for the marketing people. Kind of like a "browerser Acid test" but for physics engines would be nice, so that you know they're not cheating with the physics engine.

      Just a particle system is a joke.

      --
      The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.
    20. Re:It's just particles by madsenj37 · · Score: 1

      I hope someone else gets this and rates it funny.

      --
      Choosing the lesser of two evils is a choice for evil.
    21. Re:It's just particles by Anonymous Coward · · Score: 0

      I think both companies are pretty heavy duty.. it will be interesting to see who will prevail. There are a bunch of good articles popping up: http://www.snappingyro.com/index.php/2008/04/15/nvidia-vs-intel-graphics-wars/ Good on nVidia's CEO for dropping the PC stance. I wish more companies would just say what they mean. The competition will be great!

  2. Duke! by wild_quinine · · Score: 5, Funny
    The best news about this is that it implies that if hardcore kit kills with it, then at least budget hardware (that many people have already!) can do it acceptably. That means finally seeing games that REQUIRE physics acceleration.

    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.

    1. Re:Duke! by Ninja+Programmer · · Score: 1

      Brian Hook is currently working on Duke Nukem Forever. I don't say that this guarantees it will ship, but at least Hook has a record of being able to ship projects.

    2. Re:Duke! by chord.wav · · Score: 1

      Duke Nukem Forever was never conceived as a game. It's a message and a business model. It's 3D Realms's very own particular way to tell you Osama Bin Laden doesn't exist at all. Much like Osama, Duke would appear from time to time in a video, most often during Christmas eve, to tell you how he's going to screw things up, he tells you to stay tuned...But as the time passes, you never see him appearing, live or dead. Yet, the videos keep coming...each quarter and the company keeps getting funds.

    3. Re:Duke! by Anonymous Coward · · Score: 0

      George Broussard can make the same claim, but his career is mired by being on the DNF team. It's like the black hole of video game development.

  3. I couldn't find anything specific - will nVidia... by mmell · · Score: 5, Interesting

    ...provide Linux drivers, or will the F/OSS community have to reverse-engineer this one?

  4. Is particle motion a fair test case? by DoofusOfDeath · · Score: 5, Informative

    Is a particle motion simulator a abnormally easy test case?

    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.

    1. Re:Is particle motion a fair test case? by Anonymous Coward · · Score: 2, Interesting

      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.

    2. Re:Is particle motion a fair test case? by AcidPenguin9873 · · Score: 4, 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.

    3. Re:Is particle motion a fair test case? by Actually,+I+do+RTFA · · Score: 1

      Is a particle motion simulator a abnormally easy test case?

      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.

      --
      Your ad here. Ask me how!
    4. Re:Is particle motion a fair test case? by ardor · · Score: 1

      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

      Then .... use CUDA for the former and the CPU for the latter? What was your point again? :)

      --
      This sig does not contain any SCO code.
    5. Re:Is particle motion a fair test case? by AcidPenguin9873 · · Score: 1

      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 to become less general-purpose then, don't you think? Cheaper computing power to do protein folding or SETI, sure, but then? Maybe we'll find more problems that are helped by GPGPU, and nVdia and ATI will have the infrastructure in place to support them. But like I said, I'm a bit skeptical.

    6. Re:Is particle motion a fair test case? by mdarksbane · · Score: 1

      Physics processing in a particle system is one of those embarrassingly parallel problems. Generally you are throwing large numbers of points into a system with a set number of influences (gravity, wind, attraction to a point) and simulating where they should be without considering collision detection or how they influence each other.

      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 parallel forms and do a sort of hybrid approach, it requires a lot more work get the same sort of speed increase. Particle systems have been done on GPU's for a while now, actually - you just had to jump through some weird hoops for it.

      Still, I think most of what was being advertised in Ageia and similar offerings was the additional particles you can throw at a scene. You can make an explosion of a building look much cooler if it *actually* sends of hundreds or thousands of different mortar fragments flying into the air than if you try to fake it with just a few.

      You can even do some basic collision detection on the particles (like, say, making them bounce off the ground) as long as they don't have to all interact with each other.

      It's going to be like adding texturing and lighting support to the GPU was - nothing revolutionary in terms of what you can do in the game, but significantly improving the eye candy factor.

    7. Re:Is particle motion a fair test case? by kramulous · · Score: 1

      I put the numerical GPU computing in the same class as the FPGAs. They are for specific purposes, just as algorithm choice. Now you have to make the combinatory choice of algorithm and chip.

      I had some researchers here that needed to perform approx. 10 million 2D fft calculations (that number growing larger by the end of year). I believed, for the long term view, to deploy this by batching it for the GPU instead of batching it on our cluster (we don't have access to those really big clusters and utilisation is already 100%). I was able to deploy the solution closer to the source of the data (to lower the internal network traffic) and the 8800GTX was doing them roughly 10x faster than the 5300 series. Ideally, I would have liked to knock up the post-processing with cuda as well, but time didn't permit. Researcher was happy with throughput.

      --
      .
  5. Re:I couldn't find anything specific - will nVidia by karbonKid · · Score: 5, Informative

    http://www.nvidia.com/object/cuda_get.html offers: "NVIDIA Driver for Linux with CUDA Support (169.09)"

    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.

  6. Re:I couldn't find anything specific - will nVidia by danbert8 · · Score: 1

    Don't get me wrong, I am a HUGE fan of linux, I use it on all my computers. However, there is no point in releasing drivers for this in Linux because the only use would be physics accelerated games, which won't be ported to Linux anyway. Any program that would use accurate physics in Linux already uses the CPU to calculate it.

    --
    Yes it's an anecdote! Were you expecting original research in a Slashdot comment?
  7. So by Snuz · · Score: 3, Funny

    PC Gaming is dead . . . right?

    1. Re:So by Zabu · · Score: 1

      BOOM! Head shot!

      --
      It's all good.
    2. Re:So by Lord+Ender · · Score: 4, Informative

      NVDA is a chip maker. They make the best GPUs, period. Their chips are used in high-end PCs, but also in Sony's PS3.

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    3. Re:So by Anonymous Coward · · Score: 0

      Nehalem na give up?

  8. Experts please explain something by Handlarn · · Score: 5, Interesting

    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! :)

    1. Re:Experts please explain something by Anonymous Coward · · Score: 1, Informative

      Here's a quick gotcha: GPU has lots of small computing units/processors inside and can crunch a lot of data in parallel and give you results fast. However, I have yet to see one GPU that can actually do double precision floating point. The Cell processor as well as the current GPU crop (with the exception of ATI) can only do single precision and that is known to reduce the accuracy of your computation.

    2. Re:Experts please explain something by Rafe_Aguilera · · Score: 2

      CPU's are general purpose processors that perform a lot of different functions. GPU's are highly specialized ASICs designed to do one or two things very, very quickly.

      CPU = Jack of all trades, master of none; GPU = the highly trained specialist.

    3. Re:Experts please explain something by frith01 · · Score: 0

      GPU = Graphics (specialized) processing ( High parallel capability) CPU = Generic multi-purpose processing. Car Analogy, CPU = gas Minivan, GPU = several smaller electric vehicles. Why can the GPU deliver more packages to different destinations quicker? Why can the CPU deliver a larger single box , or a wider variety of payloads, or travel further distances between re-fuel ? CPU can delivery multiple processes, but it is engineered to support DIFFERENT things running at the same time. GPU is streamlined to do the one (subject area) as fast as possible.

    4. Re:Experts please explain something by caerwyn · · Score: 5, Informative

      Particle systems are about as perfectly a parallel problem as it's possible to get- and not only that, the calculations are generally very straightforward with few (if any) general CPU control structures (branches, loops, etc).

      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.

      --
      The ringing of the division bell has begun... -PF
    5. Re:Experts please explain something by makomk · · Score: 1

      Except that GPUs aren't highly specialised anymore; the latest generation of Nvidia cards are basically just a large number of general-purpose CPU cores.

    6. Re:Experts please explain something by cerelib · · Score: 4, Funny

      Wow, that has to be the worst car analogy I have ever read on Slasdot. Instead of comparing on specialization of hardware (minivan vs drag-racer might have been a winner), you went down some sort of bandwidth path. I don't even know what the "re-fuel", gas vs electric thing equates to.

    7. Re:Experts please explain something by cowscows · · Score: 5, Informative

      In its most basic definition, a GPU is just a CPU that's been highly specialized towards graphics. It can't do anything that a CPU can't also do, it just is able to do particular things much faster. Basically, they take a lot of the common tasks that graphics require of a processor, and they put really efficient ways to do it directly into the hardware, and they put a whole lot of them.

      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...

      --

      One time I threw a brick at a duck.

    8. Re:Experts please explain something by Anonymous Coward · · Score: 0

      This is incorrect. Newer GPUs can do more in terms of general-purpose computations than older generations, but they are still highly tuned towards SIMD vector operations, and still have specialized components designed to operate on texture and vertex data... They are not a large set of general-purpose cores.

    9. Re:Experts please explain something by Anonymous Coward · · Score: 0

      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! :) I believe it has to due with the fact that GPUs are designed for data parallelism, which is different from the x86 architecture, and there is time spent feeding/reading data to the GPU that would most likely negate the benefit of anything that wasn't mostly parallelized to begin with.
    10. Re:Experts please explain something by ardor · · Score: 2, Informative

      A GPU excels at massively parallel tasks. Stuff like rendering, raytracing (yes! a GPU can raytrace!), DCTs, ... essentially, a GPU is a stream processor that maps a function (a shader) on independent entities (pixels, or vertices).
      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 a good example.
      So, GPUs are processors that operate in a very limited area. But they excel there. This is a contrast to CPUs, which are a jack of all trades.

      --
      This sig does not contain any SCO code.
    11. Re:Experts please explain something by Space+cowboy · · Score: 2, Informative

      Simple reason:

      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" :-) monitors. That gives me 224 1.5GHz stream processors in the GPU. Even harmonising GHz, thats 8 compared to 112, and its a lot easier to get a parallel algorithm running efficiently on a GPU than on multiple CPU's due to differing hardware designs...

      Now stream processors aren't quite the same as general purpose processors, but the way they're implemented these days, they can be programmed in high-level languages (see jon stokes' article) and if their architecture suits what you want, they can be very very quick. See here for info on programming them...

      Simon.

      --
      Physicists get Hadrons!
    12. Re:Experts please explain something by Anonymous Coward · · Score: 0

      Except that GPUs aren't highly specialised anymore; the latest generation of Nvidia cards are basically just a large number of general-purpose CPU cores.


      Got any links for some Fritz chess benchmark scores for it? Let me know when you get some.
    13. Re:Experts please explain something by maxume · · Score: 1

      No, no, no, as I understand it, all tools are hammers, and all problems are nails.

      This is a nice way of looking at things, as the solution to every problem is to hit it with a hammer until it isn't a problem anymore.

      --
      Nerd rage is the funniest rage.
    14. Re:Experts please explain something by Anonymous Coward · · Score: 1, Informative

      In a nutshell: A CPU dedicates a very large portion of the die to control logic, and a relatively smaller portion to arithmetic units.

      A GPU has very little control logic, and is jam-packed with arithmetic units. The control logic it does have is also fairly distributed.

      The CPU has the advantage that due to instruction windowing, out-of-order execution, branch prediction, and other niceties, it can fairly efficiently execute many types of code using a fairly simple execution model. It provides things we take for granted, like a unified view of main memory.

      The GPU has the advantage of massive horsepower - but essentially, the GPU can't walk and chew gum at the same time. GPUs are massively parallel SIMD (or SPMD for the newest generation) machines, so they can execute one code path over a lot of data at once. Many things your OS does do not fall under this category of massively parallelizable problems, so your GPU would execute them far slower than your CPU.

      Even in the realm of highly numeric algorithms, there are some that don't translate well to the GPU model - ray tracing is one of them. Ray-tracing parallelizes well, but since GPU are SPMD, they have trouble with code with a high level of branching. There are also bandwidth issues - getting data to all the different arithmetic units on the GPU becomes a very serious bottleneck, especially for problems that lack strong data coherency. Ray-tracing has both these problems, so the end result is that GPU based ray-tracers are at best tied with CPU based ray-tracers for the current generation.

    15. Re:Experts please explain something by Ninja+Programmer · · Score: 1

      Interesting analogy, but you have not characterized the performance differences.

      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 maintain backward compatibility or be designed for implementing databases.

    16. Re:Experts please explain something by Anonymous Coward · · Score: 1, Informative

      This is wrong. Actually processing the bits given any sort of operator instruction is pretty easy. Sure, there are some clever ways to implement div or mul etc. but the actual functions they perform is not too spectacular. Vector operations aren't rocket science either.

      Data protection, debugging facilities, virtual memory etc. are more complex, but again they don't make an incredible difference. If they cost an order of magnitude slowdown, then you'd bet you'd see CPUs sold without them for more uses.

      No, the CPU is excellent at processing large and unpredictable control flow (eg. branches), and more importantly unpredictable data access. A modern CPU like core2's ability to extract ILP and keep the memory pipeline full is quite incredible. It does this by prefetching, speculatively executing loads and stores long before dependent branches, other stores, or any other instructions have completed.

      CPU = master of extracting ILP and MLP from serial code. This is the highly trained specialist.

      GPU = brute force approach to executing highly parallel tasks. This is the herd of retards that is trained for some specific repetitive tasks but breaks down when asked to handle more complex situations.

    17. Re:Experts please explain something by graphicsguy · · Score: 1

      +1 informative to the parent (if I had mod points). Also, CPU dedicates more die area to data caches.

    18. Re:Experts please explain something by athdemo · · Score: 1

      Mac Pro boards support sli? I was unaware.

    19. Re:Experts please explain something by lnxpilot · · Score: 2

      Please check your facts.
      The Cell processor *can* do double-precision calculations.

    20. Re:Experts please explain something by Deanalator · · Score: 1

      Put simply, CPUs are optimized for things like boolean operations, and GPUs are optimized for things like matrix operations.

    21. Re:Experts please explain something by hey! · · Score: 2, Funny

      Well, analogies are a left brain function, and left brains probably prefer to generate cdr analogies.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    22. Re:Experts please explain something by ceoyoyo · · Score: 1

      The GPU is very specialized. It can only do certain things.

      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 quote from the story about Intel's new architecture being 40x slower than NVIDIAs processor is silly. The two do different things. The CPU can do what the GPU does, more slowly, but the GPU cannot do most of the things the CPU can.

    23. Re:Experts please explain something by snuf23 · · Score: 1

      Nope. He's using two cards to drive three total monitors. He is not using two cards in SLI to render 3D to one display. You can plug more than one card in to independently drive multiple displays on a Mac. You can't use SLI however.

      --
      Sometimes my arms bend back.
    24. Re:Experts please explain something by Logger · · Score: 1

      You could think of a GPU as in idiot savant. But in reality they don't have to be even that specialized. It's probably more like a brilliant person that is great at their specialty, but can't coordinate their clothes or give directions.

    25. Re:Experts please explain something by default+luser · · Score: 1

      I don't imagine you'd need SLI if the boards are working separately. In other words, have GPU1 crunch PROBLEM1, and GPU2 crunch PROBLEM2. There's no conflict, because they both have independent PCIe x16 connections.

      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.

      --

      Man is the animal that laughs.
      And occasionally whores for Karma.

    26. Re:Experts please explain something by BrotherBeal · · Score: 1

      This is Slashdot - leave Lisp puns to reddit and Paul Graham.

      --
      I'm disabling ads until because I choose not to reward redesigns that are less usable than "view source".
    27. Re:Experts please explain something by forringer · · Score: 1

      I guess that would make a physics processor the nail gun. Or something... I would think of it more like switching from the flat-head bit to the phillips bit. Same tool, with a fun new attachment. :)
    28. Re:Experts please explain something by Anonymous Coward · · Score: 0

      GPU = typical /.er, IOW. (perhaps doesn't want to waste time giving s.o. directions)

    29. Re:Experts please explain something by Anonymous Coward · · Score: 0

      That is somewhat too big a simplification. A GPU is more than just a specialization - it's not like you can start with a CPU and end up with a GPU. They're designed from the ground-up to do their thing, which is applying a small set of instructions on a huge amount of data. There are definitely things a CPU can do that a GPU can't. A CPU is a superset of the GPU - a CPU can do everything a GPU can't, but not the other way around (I believe that is still true, even though the GPU has gotten more general and supports things like loops & branching).

    30. Re:Experts please explain something by addie+macgruer · · Score: 1

      Rendering a world in 3d requires you to do *a lot* of very simple maths. OpenGL breaks down the operations into two steps, DirectX is essentially the same.

      "Per vertex": the 3d world is made out of triangles. The camera position and viewpoint is expressed as a matrix, and subject to a matrix inversion, a simple mathematical transform. Every corner of every triangle (vertex) is expressed as a matrix, and then multiplied by the inverted camera matrix. The product is the (x,y) position on your screen, together with the depth (distance).

      Matrix maths is easy, it's a series of multiplications followed by a series of sums. A general purpose CPU has to follow the instructions for each vertex every time, which is time consuming. A specialised GPU has circuitry which does this maths, and only this, and thus can run many at once at considerable speed.

      "Per fragment": if you were rendering to the screen, you could think of this as per-pixel, but you could rerender each pixel many times to anti-alias, or you could render to a file, or do 3d tricks like Valve's Portal by rendering alternative views elsewhere, first.

      Once you've converted your triangles into what they look like on the screen, you need to colour them in. Old-school 3d graphics (late 80's) might use a single colour for each one, but we've come to expect more. Texture rendering is easy maths: load the texture from memory, interpolate how far along the texture the part of the triangle you want is, and put that colour of the texture on the fragment you're rendering. General purpose CPUs can do this, but rendering the entire world takes a lot of time. As a bonus, each "fragment" is a seperate bit of maths, so lots of "pixel shaders" (specialised GPU circuits) can work on fragments separately, and pool their results for speed.

      GPUs have really, really, fast local memory compared to CPUs. It's optimised for reading, not writing, as textures don't need to be changed that often. General purpose CPUs need to check whether multiple cores are using the same memory, as they are quite likely to write and change it in general operation, slowing things down. Also, GPUs have specialised circuits for texture maths, and only this maths, which lets them do it faster.

      In addition, some other fragment tricks (eg. if you add a bit of grey with increasing distance, you get a "fog" effect; if you add some white depending on the angle of the triangle, it looks shiny and reflective) can have specialised bits of circuitry on the GPU. Not hard maths, but you can do it faster if that's all you can do.

      GPUs now also tend to have provision for managing your triangle lists and whatnot which lets them crank out the maths faster than if they had to wait on the CPU.

      That clear things up?

    31. Re:Experts please explain something by delt0r · · Score: 1

      Physics just happens to fit within that set. Some physics happens to fit, like 1000's of independent collision-less particles, not all physics in general. And in particular Games physics where accuracy is not really important fits well. Even better if its just eye candy, you don't need to push the results back to main memory.
      --
      If information wants to be free, why does my internet connection cost so much?
    32. Re:Experts please explain something by cowscows · · Score: 1

      Perhaps you're right, I'm not really an expert in this sort of thing. But I thought one of the "rules" of computers was that as long as they can fulfill a specific set of really basic functions (Turing completeness it's called, I think), then they are capable of any calculation that any other computer would be able to do.

      This doesn't mean that programming some of those tasks wouldn't be awfully complicated and inefficient, nor does it say anything about how long it would take for the program to run, but seeing as they had machines 60 years ago that were turing complete, I find it hard to believe that your average GPU from today isn't also.

      There are things that the GPU might not be able to do at a speed acceptable enough to actually be useable, but I think that fits nicely into the tool box analogy. You could use your cordless drill to cut a sheet of plywood in half if you drilled enough holes all the way down the middle of it. It'd take all damn day, but you could do it.

      --

      One time I threw a brick at a duck.

    33. Re:Experts please explain something by bjb · · Score: 1
      Someone who used to work for me several years ago came from the world of Cray computers. Cray was always considered a super computer because of its unique ability to be VERY fast at vector processing. Of course, nowadays your PS2 or PS3 is probably just as fast as what he was using then, but that is besides the point.

      The point being that he told of how those machines weren't really fast at doing general programs, but when you programmed them for vector calculations (math, physics, etc) they SCREAMED.

      I guess this is kind of the same idea as if you were to use a GPU for general computation; it would be slow for most common operations, but when you feed it the right job it will put everything else to shame.

      --
      Never hit your grandmother with a shovel, for it leaves a bad impression on her mind...
    34. Re:Experts please explain something by Anonymous Coward · · Score: 0

      Anyone care to explain why there's such a big difference between a GPU and a CPU? 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? Handlarn,

      I'll take a shot at explaining that. :-)

      For general purpose computing (as opposed to rendering images), the GPUs have lots of relatively slow processors, whereas a CPUs have a few (1 or 2 or 4) very fast processors.

      Would you rather have 64 processors running at 500MHz [GPU] or would you rather have 1 processor running at 3GHz [CPU]. The CPU is 6x faster clock speed, but the GPU has 64x the processor count. On the surface, it sounds like the GPU wins.

      BUT, it depends on your program -- specifically, it depends on data dependencies among its instructions.

      A data dependency is when the output of one calculation is needed for the input of the next calculation. For example: a = b+c. d = a*a. To arrive at d, we have to calculate a=b+c before we can execute d=a*a. If we do this on a 64 processor GPU, exactly one processor does the a=b+c while the other 63 are just sitting idle, waiting for work. So, the GPU is underutilized and the one processor that is computing is running at only 500MHz. If you do it on a CPU running 3MHz, it goes a lot faster.

      On the other hand, if you have a bunch of calculations that are independent, such as a0=b0+c0, a1=b1+c1, a2=b2+c2, etc, on up to a63=b63+c63, then all 64 GPU processors can execute in parallel, because none of these calculations rely on the results of any of the others. A CPU with a single 3MHz processor wuold have to do those calculations serially: first a0=b0+c0, then a1=b1+c1, then a2=b2+c2, etc. It would do each of them quickly, but the one CPU processor has to perform all 64 adds. In the GPU case, each of the 64 processors needs to do only 1 add, and would finish sooner. This kind of data-parallelism is common in physics and other scientific computing - and also in graphics rendering, video decompression, and certain other applications.

      The examples above used math computation to illustrate data dependency. But there are other kinds of data dependencies such as conditional branching -- that's where a variable/register is tested for some condition true/false (nozero-ness, equal-to-3-ness, greater-than-5-ness, etc) and depending on the true/false result of the test, one part or another part of the program is executed next.

      if (a>5)
          print "a is greater than 5"
      else
          print "a is 5 or less"

      The print statements have to wait until the (a>5) test is done. That is a form of dependency (maybe not strictly a data dependency, actually) which serializes the execution. GPUs hate that. One processor would do the (a>5) computation while the rest of them are waiting to find out which print they should execute.

      The fact is that most applications running on your PC (word processors, web browsers, your operating system, etc) are highly serial problems.

      But a few specialized things (3d rendering, video decoding, weather simulations, signal processing) have highly parallel portions which could be accelerated by a GPU.

      -stef

  9. So... by Anonymous Coward · · Score: 1, Funny

    How much is this going to push back the release date on DNF, now that they can add in advanced physics stuff?

    1. Re:So... by SQLGuru · · Score: 1

      I don't think it will push it out any.....this is one less system that the designers / coders need to account for.....eventually, technology will catch up with DNF and we can simply click a "do it" button and have DNF be released.

      Layne

  10. Why particle systems? by Thanshin · · Score: 5, Interesting

    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.

    1. Re:Why particle systems? by Animats · · 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.

    2. Re:Why particle systems? by zsouthboy · · Score: 1

      Link?

    3. Re:Why particle systems? by Anonymous Coward · · Score: 0
      Looks like it's http://www.animats.com/

      Look at the note he has on the bottom of the page. Hi patent troll!

      Our technology for high-quality ragdolls is patented. This broad patent covers most spring/damper character simulation systems. If it falls, it has joints, it looks right, and it works right, it's probably covered by our patent.
    4. Re:Why particle systems? by PitaBred · · Score: 1

      Even if it's not "realistic", you still need the same rules. The only thing that makes something not realistic are the sizes of the coefficients. Plus a little bit of magic impulse ;)

      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.

    5. Re:Why particle systems? by Anonymous Coward · · Score: 0

      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. What? They cheat? I want my money back!
  11. Re:I couldn't find anything specific - will nVidia by Anonymous Coward · · Score: 1, Insightful

    Well, if there were official drives, that would certainty make porting games easier...

  12. Re:I couldn't find anything specific - will nVidia by wanerious · · Score: 4, Insightful

    Don't get me wrong, I am a HUGE fan of linux, I use it on all my computers. However, there is no point in releasing drivers for this in Linux because the only use would be physics accelerated games, which won't be ported to Linux anyway.

    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.

  13. 640K RAM is enough for anybody, right? by mmell · · Score: 2, Insightful
    Just because you don't currently have a use for this, doesn't mean nobody ever will.

    That's okay - somebody else already posted the answer - this thing'll use an established mechanism (CUDA). I don't know what that is, but after this card hits the market, I'll probably start to find out.

    1. Re:640K RAM is enough for anybody, right? by Anonymous Coward · · Score: 0

      You don't even have to wait if you are wanting to do data-parallel calculations. All of the GeForce 8 and 9 series can run CUDA applications, and lots of people have been doing number crunching using CUDA for more than a year now.

  14. Oh really? by bconway · · Score: 4, Funny

    However, you can't ignore the fact that Nehalem in fact can run physics.

    In fact, I can.

    --
    Interested in open source engine management for your Subaru?
  15. Re:I couldn't find anything specific - will nVidia by dreamchaser · · Score: 4, Informative

    (sarcasm on)Yes, I am sure there are no scientific or enginnering applications for accellerated physics calculations (sarcasm off).

    Anyone ever tell you that a lot of scientific types use Linux on their workstations? They do.

  16. However, you can't ignore the fact that Nehalem in by Anonymous Coward · · Score: 0

    However, you can't ignore the fact that a car in fact can take you from A to B... but if you need to cover long distance very quickly then airplane (or something like this) is the only way.

  17. nested particles by _ph1ux_ · · Score: 1

    Forgive my naivety,

    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 how reality is built anyway....

    1. Re:nested particles by Shados · · Score: 1

      I dont know much more than you about the current situation, but in the interviews of The Force Unleashed (360/PS3 versions), thats pretty much how they described their physics engine... so I'm guessing its not a new idea. Something about all of the objects being made of "molecules", and the physics engine had information about these "molecules" and how to break/bend/move them.

    2. Re:nested particles by _ph1ux_ · · Score: 1

      Awesome!

      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.

    3. Re:nested particles by Shados · · Score: 1

      I hate Flash sites, but:

      http://www.lucasarts.com/games/theforceunleashed/

      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 :)

    4. Re:nested particles by PitaBred · · Score: 1

      Not really, no. A particle as I understand it is simply a discrete point in space. It has no mass itself. You just render it as if it does. For example, a rain drop has essentially no mass to contribute to physics when you collide with it, but it's rendered to show it as an object, and the physics of it allow it to be directed by wind, etc. Particles just aren't big enough to really worry about collisions, which is what I believe the big difference between particles and "other things" are.

      But I've only dabbled a very little in graphics.

  18. Real Physics engine goal by Anonymous Coward · · Score: 5, Funny

    I want to see 10^88 particles simulated at 10^33 frames / second.

    1. Re:Real Physics engine goal by Anonymous Coward · · Score: 3, Funny

      How do you know you're not?

    2. Re:Real Physics engine goal by Anonymous Coward · · Score: 0

      How is this insightful?!

      *flips out Frank Grimmes style*

    3. Re:Real Physics engine goal by fitten · · Score: 1

      That was done so long ago, it's got petrified dinosaur snot on it!

    4. Re:Real Physics engine goal by Anonymous Coward · · Score: 0

      I don't understand why that comment was insightful; it is estimated that there is less atoms in the observable universe than 10^88 (as in many orders of magnitude less). Surely there's more useful goals out there.

    5. Re:Real Physics engine goal by Anonymous Coward · · Score: 0

      Look outside.

    6. Re:Real Physics engine goal by Anonymous Coward · · Score: 0

      So, you want the same number of particles as there are atoms in the universe (give or take... 10-ish? orders of magnitude), running at about 11 orders of magnitude below what they would if they were rendered in one tP (Planck time).

      Here's a thought: Go Outside.

    7. Re:Real Physics engine goal by Anonymous Coward · · Score: 0

      Someone explain to me how this was modded insightful? Posting a bunch of random unrealistic numbers now gets you modded up?

    8. Re:Real Physics engine goal by lordholm · · Score: 1

      They weren not random, they were roughly the number of atoms in the observable universe and the planck time.

      This is slashdot, you should understand that these jokes are very common here.

      --
      "Civis Europaeus sum!"
    9. Re:Real Physics engine goal by Anonymous Coward · · Score: 2, Interesting

      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.

    10. Re:Real Physics engine goal by cpricejones · · Score: 1

      You can break that easy with an overclocked TI-89.

    11. Re:Real Physics engine goal by At0miC · · Score: 1

      Assuming Moore's Law keeps up and we start with 65000 particles at 300fps (19500000 particles per second so we can scale), in about 577.5 years that could be a reality.

    12. Re:Real Physics engine goal by Anonymous Coward · · Score: 0

      I suppose you mean 10^44 frames/second?

  19. Re:I couldn't find anything specific - will nVidia by Spad · · Score: 1

    I'll be impressed if they manage Windows drivers that don't crash on a regular basis.

  20. Nah, just a new expansion by Bored+MPA · · Score: 1

    Duke Nukem: Atomic Particle Edition!

    *bows*

    I almost typed Addition. Ah wordplay.

  21. Comment removed by account_deleted · · Score: 5, Funny

    Comment removed based on user account deletion

  22. real physics? by goombah99 · · Score: 2, Interesting

    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.
    1. Re:real physics? by king-manic · · Score: 2, 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 have a huge impact on most people but I'm sure it really urques the physics pedants.
      --
      "There are more things in heaven and earth, Horatio, than are dreamt of in your philosophy."
    2. Re:real physics? by interstellar_donkey · · Score: 3, Funny

      We expect bullets to hit with far more kinetic force then they do.

      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.

      --
      The Internet is generally stupid
  23. FIrst you need a Windows version that won't crash. by mmell · · Score: 5, Funny

    Just sayin'. ;^)

  24. What would Heisenberg do? by mich.linux.guy · · Score: 1

    Yes, but does the model always guarantee that the product of the standard deviations of the particle's momentum and position is always greater than half the reduced Planck constant?

  25. What? by Anonymous Coward · · Score: 0

    >The Cell processor as well as the current GPU crop (with the exception of ATI) can only do single precision and that is known to reduce the accuracy of your computation.
    CellBE can do DP floating point calculations... just not as well as SP. (not being an understatement, A HELL OF ALOT less)

    There was even a special version IBM created solely for doing alot of double precision.

    This, of course, is if i am actually in the same universe i was in yesterday.

  26. Sync between machines with different cards? by tepples · · Score: 1

    Super-soakers Online! Cloth and liquid simulations determine who got wet, how wet, and whether or not that means they're out! Only if everybody else is using the same brand of physics accelerator, or if some physics API specification makes some guarantees about the output given the inputs. Otherwise, simulations run on multiple machines fall out of sync. A compromise solution is to use coarse particles for game logic and finer particles for iCandy.
    1. Re:Sync between machines with different cards? by Mr+Z · · 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.

      --Joe
    2. Re:Sync between machines with different cards? by nschubach · · Score: 1

      What about larger object... like cars, crates, and large chunks of building? If you are in a multiplayer world and one of the members jumps up on a wall section and your wall didn't land in the same spot, someone will cry foul.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
  27. Finally a use for the embedded GPU... by downix · · Score: 1

    Ok guys, how about we use that embedded anemic GPU for these functions? It would off-load work from the CPU, improving whole-game performance dramatically I would imagine.

    --
    Karma Whoring for Fun and Profit.
    1. Re:Finally a use for the embedded GPU... by fitten · · Score: 1

      The embedded GPU would need to be able to do floating point, double precision preferred.... which even the high end cards from a short time ago couldn't do (the double precision part).

    2. Re:Finally a use for the embedded GPU... by Colonel+Korn · · Score: 1

      Using Intel integrated graphics instead of running physics simultaneously with graphics on an nVidia part would free up something like 1-3% of the nVidia's time. I don't think it would be worth it. That little chip is great for simple 2-d graphics, but not much else.

      --
      "I zero-index my hamsters" - Willtor (147206)
  28. what's with physics? by ILuvRamen · · Score: 1

    I play oblivion and when I kick objects or hit them with an arrow or spell or warhammer, they go flying accurately. They drop accurately, roll accurately, and bounce accurately. And I don't have a physics processor. So how did they do it? How is this some big innovation if they can already put extremely realistic physics into a game with existing technology? And not even existing, OLD! I used to run it on a 6600GT OC and recently got an 8600GTS OC and have an AMD 4400+ X2 and it still did nearly perfect physics.

    --
    Google's Super Secret Search Algorithm: SELECT @search_results FROM internet WHERE @search_results = 'good'
    1. Re:what's with physics? by mich.linux.guy · · Score: 1
      I believe you could accurately simulate a hammer with a system of six particles.

      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. 60,000 is greater than 6. Your machine might slow down under that amount of computation.
    2. Re:what's with physics? by jjohnson · · Score: 1

      Physics with a few particles is easy, but it scales poorly. It's not hard to calculate a trajectory for a single object that gets hit, but truly destructible environments (the holy grail of games, for now) will require thousands of objects at least.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    3. Re:what's with physics? by fitten · · Score: 1

      Not only that but it's probably not even accurate physics. It's not a physics simulator, it's a game.

    4. Re:what's with physics? by Keith+Russell · · Score: 1

      I play oblivion and when I kick objects or hit them with an arrow or spell or warhammer, they go flying accurately.

      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 rendering would stop being the bottleneck in the game engine.

      If you want to see the limits of Oblivion's physics engine, use cheat codes to create an uber-hero. Max out your Strength, Agility, and Marksman stats, and enemies start flying around like bad guys in a John Woo film when you hit them with an arrow.

      --
      This sig intentionally left blank.
    5. Re:what's with physics? by blahplusplus · · Score: 1

      Physics is over-rated, the big deal with physics when it was 'first' talked about really was for rag-doll physics in FPS games and things like Unreal, where you shoot someone and the body animates from an impact not in a pre-scripted manner but according to impact. Most games pre 2000 had fixed / scripted animations that occored when someone died, also you'd see weird things like when someone dies their body would be hanging off a ledge vertically, with physics these things don't (uaually) happen, the body falls over an edge, rather then being 'stuck' permanently mostly in mid air.

      I just finished playing crysis and buildings would fall in on you and collapse when shot/blown up, etc, in many games the set pieces are entirely static, you cannot damage them. Physics adds some very limited destructability to certain environments and is basically used mostly to amplify special effects.

      Physics in games is completely over-rated.

    6. Re:what's with physics? by ApostleJohn · · Score: 1

      Oblivion's engine is Havoc which runs on the CPU, so your graphics card doesn't matter in that case. You don't see more advanced physics in oblivion though... no trees falling down... no castles crumbling. Imagine if the whole world was destructible. You'd really be smiling then!

    7. Re:what's with physics? by Colonel+Korn · · Score: 1

      Most game programmers I know who have worked on similar games ended up using real physics for that sort of thing. It's easier than making up a fake set of physical constants and laws of motion because you can just read it out of a text book.

      --
      "I zero-index my hamsters" - Willtor (147206)
    8. Re:what's with physics? by PitaBred · · Score: 1

      Why isn't it accurate? It's a "game", but you still need the stuff to interact in an intuitive, "right" way to the observer, which means that you can play with the constants, but they still need to do the correct thing, which means at least observationally accurate physics, even if you couldn't count on it being perfect down to the splinter.

    9. Re:what's with physics? by fitten · · Score: 1

      Of course they wouldn't make up physical constants... the point I was making is that they don't, perhaps, solve matrices of partial differential equations to determine the interaction of everything in the system. Instead, they may use 'shortcuts' that are 'good enough'. The algebraic equations that you may have learned and used in highschool physics to determine simple things like momentum and speed are approximations that are typically 'good enough' for most calculations (they assume acceleration is a constant when in the real world, it never is). The "real" equations are calculus based, for example.

    10. Re:what's with physics? by fitten · · Score: 1

      which means at least observationally accurate physics, even if you couldn't count on it being perfect down to the splinter.


      Exactly. Use equations that approximate it well enough for game play through the eyes of a player instead of using the most accurate equations. Also, limit collision effects so that the matrices don't get so big. Ever wonder why you haven't seen a cube of jello in most games and most things are rigid bodies (something that doesn't really exist in the real world)? Why not vehicles that get deformed properly in crashes and have their performance modelled accurately? Instead, you get some 'tacked on' visual crash damage and your top speed/acceleration/handling is degraded by X/Y/Z amounts... which is 'good enough' for a game.
  29. What about graphics? by Guspaz · · Score: 2, Interesting

    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.

    1. Re:What about graphics? by ApostleJohn · · Score: 1

      Exactly, my GPU is really strained, but I have a core on my CPU sitting there idle... despite the CPU core being slower, it seems like a better trade-off to run physics on the otherwise idle core.

    2. Re:What about graphics? by 77Punker · · Score: 1

      CUDA isn't yet suited to running on a device that's already running a display. After about 5 seconds of executing code, the program will crash.

      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 something like POSIX threads, and run a helluva lot faster because of the numerous ALU's.

    3. Re:What about graphics? by am+2k · · Score: 1

      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 that you absolutely need an NVidia 8 or better, ATI is not supported. That kinda limits the audience.

    4. Re:What about graphics? by Anonymous Coward · · Score: 0

      That's the whole point.

      Now nvidia can tell you you actually need to buy two graphics cards.

  30. Re:I couldn't find anything specific - will nVidia by Anonymous Coward · · Score: 0

    Yeah, I cant wait to model the big bang on a quad-GPU machine.

  31. Re:I couldn't find anything specific - will nVidia by bendodge · · Score: 2, Insightful

    Linux games? I guarantee you that many packages tagged "science" will use this in no time and games will be left to rot.

    --
    The government can't save you.
  32. 300 fps ! by Hemlock+Stones · · Score: 1

    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?

    1. Re:300 fps ! by BitZtream · · Score: 1

      Accuracy.

      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 smaller and more accurate due to the increased frame rate available.

      Of course, the physics engines of today, for the most part can use smaller internal time steps to get the same result, but at some point those internal time steps take longer to process than real time, in which cause somethings got to give, be it real application frame rate, or simulation framerate/accuracy.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    2. Re:300 fps ! by Z34107 · · Score: 2, 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 linear algebra) at 60fps.

      --
      DATABASE WOW WOW
    3. Re:300 fps ! by Gewalt · · Score: 1

      4 times? last I checked the human psychovisual system was only capable of detecting the difference in frame rate below 15 frames a second. That means its over 20x faster than necessary. Intel had it right, they tweaked for perceivable performance. Nvidia again has it wrong, and tweaks for benchmark scores. (higher is better, no thresholds). Now if nvidia had managed to run intels demo with 20x more particles, THEN we could congratulate them. As it is tho, they only managed to put their marketing department in charge of a technology demo. They lose all points.

      --
      Modding Trolls +1 inciteful since 1999
    4. Re:300 fps ! by Blitz22 · · Score: 1

      Sample rate and aliasing http://en.wikipedia.org/wiki/Aliasing. Usually a frequency(fps) of double the sample rate(human brain detection rate) will eliminate aliasing and things look smooth. There is an upper limit where you no longer see an improvement, but more fps=smoother, better looking pictures.

      --
      If I went around claiming I was an emperor...they'd put me away!
    5. Re:300 fps ! by Colonel+Korn · · Score: 1

      The human eye can see some things at rates of over 500 fps. Learn at http://www.100fps.com/how_many_frames_can_humans_see.htm

      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 the CPU can focus on throwing geometry to the GPU, and the GPU can spend 90% of its time rendering and still have enough oomph left over to drive physics at 30fps with no help from the CPU.

      --
      "I zero-index my hamsters" - Willtor (147206)
    6. Re:300 fps ! by EnsilZah · · Score: 1

      Running it with more times the objects
      Running it using less power.
      Running it cooler (no need for fan).

  33. Using how much bandwidth? by tepples · · Score: 2, 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."
  34. Re:I couldn't find anything specific - will nVidia by somersault · · Score: 5, Informative

    id seem to make all their games for Linux, and they also like using random accessories like that USB flak jacket thing that simulates you getting shot (by quickly puffing up pockets of air with pneumatic compressors). No doubt Quake 5 or whatever will support it at least.

    --
    which is totally what she said
  35. Re:I couldn't find anything specific - will nVidia by Anonymous Coward · · Score: 0

    what linux games??

  36. Re:I couldn't find anything specific - will nVidia by Atriqus · · Score: 1

    Aside from all the physics software others mentioned that would benefit greatly from that, the statement about zero Linux games ever using it is quite a bold one. Please point out where in the license agreement you must work for a video game company that isn't id nor Epic in order to use CUDA.

    --
    Hey, look! It's Bono's brother.
  37. Re:I couldn't find anything specific - will nVidia by click2005 · · Score: 1

    Considering they cant write Vista drivers that don't crash, how safe is it to do complex physics stuff and trust the results?

    --
    I am a free slashdotter. I will not be modded, blogged, DRM'd, patented, podcasted or RFID'd. My life is my own.
  38. Spoiler by spruce · · Score: 2, Funny

    They're fake

    1. Re:Spoiler by captainjaroslav · · Score: 1

      They're real... and they're spectacular!

      --
      I'm just sayin'.
  39. Re:I couldn't find anything specific - will nVidia by Compholio · · Score: 1

    However, there is no point in releasing drivers for this in Linux because the only use would be physics accelerated games, which won't be ported to Linux anyway.
    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.
  40. Re:I couldn't find anything specific - will nVidia by evilbessie · · Score: 1

    Um you can, it's CUDA, you can read (yeah right) more about it http://www.nvidia.com/object/cuda_home.html and http://en.wikipedia.org/wiki/CUDA

  41. I don't understand you... by AnomaliesAndrew · · Score: 1

    Can you possibly put this in terms we're more likely to understand... like Libraries of Congress per fortnight?

    /hides back under the bridge

    --
    Move all sig!
  42. Good particle physics models, eh? by Ungrounded+Lightning · · Score: 1

    Let's see how well a cluster of these does on nuclear weapon or reactor design.

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
    1. Re:Good particle physics models, eh? by MadUndergrad · · Score: 1

      Bad news:

      'Hegde stressed that the PhysX engine does not include quantum mechanics because the company "focuses on physics for fun and entertainment".'

  43. Fighting Games by alohatiger · · Score: 1

    I think the key to that kind of martial arts game would be to give up the idea of controlling the hands and feet directly (step-by-step). The player assumes a "higher level" of control, and the physics engine calculates all the movement. All the environmental factors would be taken into account.

    Current fighting games use mostly preanimated characters. It's noticeable when you watch their feet slide on the ground, like their standing on ice.

    The key to this is to make a simulation that can stand and react on it's own and then create an interface the provides a meaningful gaming experience.

    Injury and fatigue would be just more input, resulting in a hobbled or gassed fighter on the screen.

    --
    Bigtime Consulting - "We're the best because we cost the most"
  44. That's a lot of developers by Anonymous Coward · · Score: 0

    The article states that the number of developers working on this is 25.000 *FIGURES* ! Given that there are only nine figures of people on this planet, who are these untold legions, slaving away on creating realistic physics?

  45. Unreal Tournament 3 PhysX demos? by Touvan · · Score: 1

    I'm not sure what this means. Does it mean, that at some future date, there will be drivers and maybe a patch for UT3 that will let me run the UT3 PhysX demos on my 8800GT - without PhysX hardware?

    Can't tell form the info posted.

  46. Re:I couldn't find anything specific - will nVidia by karnal · · Score: 1

    Unfortunately for some, you've got to make Unreal Tournament 3 not suck so hard that they'd buy it even if it was available for Linux.

    --
    Karnal
  47. Couldn't agree more by Redbaran · · Score: 2, Informative

    I'm using CUDA for my masters project, and I've had the same problem that you describe. The way CUDA works, having a conditional statement that evaluates differently in each thread will kill your performance. It makes sense as to why:
    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 serializes because it has turned into MIMD.

    In my particular project, there have been times where I've tried to optimize something with an if statement, but it's not worth it for the reason described above. With that said, it's still much faster then doing computation on the CPU. I think the biggest problem to working with CUDA, at least for me, is that I've never worked with an SIMD architecture like it, so I don't know any really good techniques. I assume they're out there, but I haven't come across anything more then what they say in the CUDA programming guide, which is fairly minimal.

    I think CUDA is good for what it is designed to do, but you won't see a real time raytracer on it anytime soon even though the gflops are there.

  48. Backwards compat? by e03179 · · Score: 1

    As I understand it, some legacy hardware will be able to take advantage of the particle rendering through a software update. Is that still the case?

    --
    -516
  49. 640k particles are enough for everyone! by FlashBuster3000 · · Score: 2, Funny

    nuff said

  50. Re:I couldn't find anything specific - will nVidia by SilicaiMan · · Score: 1

    the only use would be physics accelerated games Really? That's a very near-sighted conclusion.

    Any program that would use accurate physics in Linux already uses the CPU to calculate it. And you can also do graphics on the CPU. Once you start working with any sizable amounts of data, then this becomes quickly inefficient.
  51. Re:I couldn't find anything specific - will nVidia by kramulous · · Score: 1

    I've been compiling and running cuda fine on my Fedora 8 x86_64. 8800GTX at 182GFlops for n-body.

    --
    .
  52. Our drivers may not be working 100%... by Xenaero · · Score: 0

    But don't worry, we're working on new technology as we speak! Forget the users of our graphics cards, physics is the future! SCIENCE!

  53. Re:I couldn't find anything specific - will nVidia by LingNoi · · Score: 1
  54. Re:I couldn't find anything specific - will nVidia by LingNoi · · Score: 1

    Why would you do that? CUDA works on Linux already and would ran native.

    Next you're going to be telling me the WINE guys are working on a wrapper for openGL...

  55. Re:I couldn't find anything specific - will nVidia by Compholio · · Score: 1
    *cough*
    snippet from wine/dlls/opengl32/opengl_norm.c:

    /*
    * glAccum (OPENGL32.@)
    */
    void WINAPI wine_glAccum( GLenum op, GLfloat value ) {
    TRACE("(%d, %f)\n", op, value );
    ENTER_GL();
    glAccum( op, value );
    LEAVE_GL();
    }
  56. Re:I couldn't find anything specific - will nVidia by Anonymous Coward · · Score: 0

    Don't get me wrong, I am a HUGE fan of linux, I use it on all my computers. However, there is no point in releasing drivers for this in Linux because the only use would be physics accelerated games, which won't be ported to Linux anyway.



    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.

    Yarr! Lets run some universes!
  57. Emancipating the GPU by IncandescentFlame · · Score: 1

    However, you can't ignore the fact that Nehalem in fact can run physics.

    Physicists in my field (Lattice Quantum Chromodynamics) have been harnessing the computing power of existing GPUs to get teraflop performance on a desktop - handy if you don't have access to a supercomputer.

    Just cause something is a GPU doesn't mean you can't get your hands dirty and make it do some real work.

    Hangon ... That sounds more like "Enslaving the GPU"