Advertisement

physx chip

Started by April 20, 2006 07:42 PM
223 comments, last by GameDev.net 18 years, 5 months ago
Quote: Original post by Alpha_ProgDes
yeah but the PPUs are gonna have X amount of registers and SIMDs specific to physics processing and as another member posted have PCI-e bandwidth access. so in the end the PPU is gonna just as useful as a GPU.

Don't forget CPUs run at much higher clock frequency. If a Core 2 has six SSE units and runs at 3.33 GHz then a PPU at 400 MHz would need 50 SIMD units to keep up with it (current estimates say it has eight vector and scalar units).

What's also interesting is that in every review I've read, nobody mentions any framerate improvement in actual games. In fact several games run slower. Granted, with newer beta drivers it improves, but isn't PhysX supposed to lower CPU workload drastically? Frankly it doesn't suprise me much because physics processing is really not that intensive for real games, and using PhysX introduces new synchronization and API bottlenecks.

On the other hand, using a Core 2 instantly improves framerates. So it's far more cost effective. And the second core is hardly used yet so there's plenty of opportunity to improve physics.
Quote: Original post by C0D1F1ED
Quote: Original post by Alpha_ProgDes
yeah but the PPUs are gonna have X amount of registers and SIMDs specific to physics processing and as another member posted have PCI-e bandwidth access. so in the end the PPU is gonna just as useful as a GPU.

Don't forget CPUs run at much higher clock frequency. If a Core 2 has six SSE units and runs at 3.33 GHz then a PPU at 400 MHz would need 50 SIMD units to keep up with it (current estimates say it has eight vector and scalar units).


I think anyone who has followed tech news the past few years have realized the whole MHz bubble has burst. Hate to burst your bubble, but faster clock speeds don't translate to higher real world performance. Intel showed us that with P4, which in reality had worse performance clock per clock than the Pentium-M, which is based on the P3 architecture.

Quote: Original post by C0D1F1ED
What's also interesting is that in every review I've read, nobody mentions any framerate improvement in actual games. In fact several games run slower. Granted, with newer beta drivers it improves, but isn't PhysX supposed to lower CPU workload drastically? Frankly it doesn't suprise me much because physics processing is really not that intensive for real games, and using PhysX introduces new synchronization and API bottlenecks.

On the other hand, using a Core 2 instantly improves framerates. So it's far more cost effective. And the second core is hardly used yet so there's plenty of opportunity to improve physics.


Now, you've talked about synchronization as being a problem before and you don't get why we don't get multi-threaded games? Its all about synchronization. So what if the other core is not utilized? Its also a lowest denominator issue too. Firstly, not everyone has dual core, I know I don't. And I don't feel like a playing a game that will have a near 50% performance hit if I don't have dual core.

Secondly, its back to synchronization. If you've ever looked into multi-threaded application development, you know that its not as easy as forking a process. With something as vital as physics, you'll have alot of communication between it and the main processes. So, synchronization becomes an issue, along with idling. if physics is slower, then the main core will idle waiting for it to finish before continuing or risk possibly piling up a huge backlog difference. If on the off chance that physics is not slower, then that core idles because it has to wait for the other core to finish with the other stuff to continue. Its not like processes are dynamicaly split to fully utilize the hardware, that would be a huge leap in AI on the OS level by itself. Also, if you've ever watched workload and compared performance numbers, you'll realize that dual core has inherent overheads as well. If you run to number crunching or video encoding processes, you'll notice that each process may take a 5 - 10% performance hit.

So, the whole goal of the PPU is to at least try to speed up the physics calculation to the point that main process idles less waiting for the physics results to come back. This is especially true if we know that running the calculation on the other core will take longer per frame. That is where the benefits will come. As the physics become more complex, the performance difference will become apparent. Its kind of like how if you test most video cards on the market now in 640x480 mode, they'll all perform fairly similarly. It's just that the problem isn't tough enough to show the difference yet.

That's another reason why I'm personally against physics on the GPU for practical applications. The great thing about the GPU is that it DOES NOT need to synchronize with the CPU. The CPU UPDATES it with new data and that's it. It's a perfecy one way trip out, which makes the process so streamlined. What you're saying is to have the CPU send the GPU the physics portion. The GPU processes the physics while the CPU waits for it to return the needed results, then it sens the GPU the graphics data to be output. Because the difference between data type of physics and graphics data, the GPU may have to perform up to 60 major state changes a second. Any graphics person will tell you that the GPU is highly optimized because it AVOIDS state changes, which is fairly costly. So, no matter how fast your GPU gets, the state change is unavoidable. The more specialized each pipeline is, the more drastic the state change has to be. Its like asking a person to write an essay on modern philosophy and solve many complex differential equations at the same time.

But it doesn't really matter anymore because it seems time will tell and the fact that you really do sound like a walking advertisement for physics on GPU and the "bright" future of computing means we probably can't even cast a grain of doubt in your thought. I guess you probably still believe in the Moore's law.
Advertisement
Quote: Original post by WeirdoFu
I think anyone who has followed tech news the past few years have realized the whole MHz bubble has burst. Hate to burst your bubble, but faster clock speeds don't translate to higher real world performance. Intel showed us that with P4, which in reality had worse performance clock per clock than the Pentium-M, which is based on the P3 architecture.

Higher frequencies do translate to higher performance, for one architecture. The formula is IPC x frequency, and you simply can't neglect the frequency component. And by comparing the number of SIMD units I was already taking the IPC component into account.
Quote: Now, you've talked about synchronization as being a problem before and you don't get why we don't get multi-threaded games? Its all about synchronization. So what if the other core is not utilized? Its also a lowest denominator issue too. Firstly, not everyone has dual core, I know I don't. And I don't feel like a playing a game that will have a near 50% performance hit if I don't have dual core.

Synchronization ain't easier for PhysX than multi-threading synchronization. Also, theads can share memory and core-to-core latency is in the same ballpark as L2 cache latency (which is fast).

And yes, not everyone has dual-core. But within a couple years everyone will have one, while only a minor fraction will have a PhysX card. This summer Intel will release Core 2 and it will be cheap. Plus they will be cost effective from day one, speeding up everything.
Quote: That's another reason why I'm personally against physics on the GPU for practical applications. The great thing about the GPU is that it DOES NOT need to synchronize with the CPU. The CPU UPDATES it with new data and that's it. It's a perfecy one way trip out, which makes the process so streamlined. What you're saying is to have the CPU send the GPU the physics portion. The GPU processes the physics while the CPU waits for it to return the needed results, then it sens the GPU the graphics data to be output. Because the difference between data type of physics and graphics data, the GPU may have to perform up to 60 major state changes a second. Any graphics person will tell you that the GPU is highly optimized because it AVOIDS state changes, which is fairly costly. So, no matter how fast your GPU gets, the state change is unavoidable. The more specialized each pipeline is, the more drastic the state change has to be. Its like asking a person to write an essay on modern philosophy and solve many complex differential equations at the same time.

Graphics and physics processing can run independently. Modern graphics cards can already run different shaders in different quad pipelines. Also look at unified architectures, where pixel and vertex processing takes place on the same execution units. Furthermore, Direct3D 10 has completely new state management, minimizing the overhead of state changes.
Quote: But it doesn't really matter anymore because it seems time will tell and the fact that you really do sound like a walking advertisement for physics on GPU and the "bright" future of computing means we probably can't even cast a grain of doubt in your thought. I guess you probably still believe in the Moore's law.

You do can change my opinion, if you had sound technical arguments. But it looks like you're still underestimating the capabilities of next-generation CPU's and GPU's for physics processing and believe PhysX is magically superiour at it. Like I said before it all comes down to basic floating point addition and multiplication. And the PPU falls somewhere between the CPU and GPU in terms of performance and programmability, a market that is shrinking.
Quote: Original post by C0D1F1ED
You do can change my opinion, if you had sound technical arguments. But it looks like you're still underestimating the capabilities of next-generation CPU's and GPU's for physics processing and believe PhysX is magically superiour at it. Like I said before it all comes down to basic floating point addition and multiplication. And the PPU falls somewhere between the CPU and GPU in terms of performance and programmability, a market that is shrinking.


The promise of the next generation is always a vicious cycle. People believed the Moore's Law, which by the way never was true in the first place when it was stated by Moore in the 60s, and sort of live in the marketing bubble that processor performance/speed/compexity will double every 18 - 24 months, but the truth is, that was never true or realistic. Sure CPUs have gotten faster, so have GPUs, but I think you're underestimating the "requirements" of the next generation "software". It has pretty much gotten to the point where software drives hardware. When Doom3 came out, it took a top of the line "next-gen" system to sort of run it. Now, this "next-gen" is finally here, we once again have games that require "next-gen" systems to run properly, like CellFactor, which runs at 30fps on a SLI 7800 GTX.

Technically, I do have my doubts about PhysX, but it is a "solution" that is on the market now and not a promise for the future. That is a big difference. So, do you settle for a dedicated piece of hardware that does physics and is available now? Or do you settle for a hack that doesn't work as well, kind of like what Intel did with hyperthreading, and wait for the promise of the future solution? Even an investor knows that its better to invest in a company that has a product on the market than in some other company that "promises" a superior product "some time" in the future. Maybe PhysX isn't the solution, but it is one that's available now. But I seriously don't believe that GPGPU is a solution as the whole concept itself is an oxymoron.

I'm sure you're pretty enthusiastic about the "promise" of the next generation and how everything looks on paper. The P4 looked great on paper too. In the end, you can open a can with a knife, but a can-opener will always work better. Personally, I believe in the warning that's given to all software engineers, "When you have a hammer, everything looks like a nail." In your case, the GPU is your hammer.
This would all be moot if we could use multiple local GPUs in non-SLI form. Dedicating each to a different field of physics would be straight-forward. One for dynamics, and one for ray-tracing, and one for...

If what they're trying to do is comparmentalize things, why not just give the consumer the option to use their GPUs however they see fit, in any type of SLI/non-SLI setup they want.

The GPU was designed with physics in mind. NVIDIA should not cloud the entire issue by not hard-wiring these equation-accelerators into their own GPUs themselves.

Admittedly dynamics is harder than ray-tracing, but that's relative when you know both. The appreciation for the uniqueness of the the PPU is lost immediately on me, simply because dynamics and ray-tracing are so tightly bound together by linear algebra that they are practically made of the same "stuff".

However, if the PPU price vs power ratio is significantly more favourable than that of a GPU, so be it.

I am only hard on NVIDIA because I expect the most from them every time.

[Edited by - taby on May 16, 2006 6:56:55 PM]
Quote: Original post by taby
This would all be moot if we could use multiple local GPUs in non-SLI form. Dedicating each to a different field of physics would be straight-forward. One for dynamics, and one for ray-tracing, and one for...

If what they're trying to do is comparmentalize things, why not just give the consumer the option to use their GPUs however they see fit, in any type of SLI/non-SLI setup they want.

The GPU was designed with physics in mind. NVIDIA should not cloud the entire issue by not hard-wiring these equation-accelerators into their own GPUs themselves.

Admittedly dynamics is harder than ray-tracing, but that's relative when you know both. The appreciation for the uniqueness of the the PPU is lost immediately on me, simply because dynamics and ray-tracing are so tightly bound together by linear algebra that they are practically made of the same "stuff".

However, if the PPU price vs power ratio is significantly more favourable than that of a GPU, so be it.

I am only hard on NVIDIA because I expect the most from them every time.


I guess I'll just give one last seemingly irrational outburst before I just shut up completely.

Now if GPU was actually an abbreviation for General Processing Unit, I really wouldn't be feeling so out of whack about the things I'm seeing, but GPU actually stands for GRAPHICS Processing Unit. Why is it that we want a piece of hardware that does graphics do anything else? Sure it can do other things, especially if you fool it into thinking that its working with graphics, which is what GPGPU is all about, but why don't we all just leave it alone and let it do what it does best and stop trying to pound a round peg into a square hole.

Have we all forgotten why we have SLI or multicore processors in the first place? The answer is clean and simple, the industry is out of ideas as to how to make CPUs and GPUs faster at a decent pace. So, they lump two slower cores together and sell it as something faster. From a technical stand-point, SLI actually makes more sense than multicore CPUs just for the plain fact that the load balancing is done for us since graphics itself is a very parallel process.

But we need to realize that a GPU is called a GPU because it is excellent at pushing polygons. Though they've added pixel and vertex shaders, the GPU is still king at pushing polygons and is optimized for that. I'm starting to think what you guys want are those CPU expansion cards that servers used to use years ago where each card had a processor and RAM and you just plug it in and get another processor to work with. I think they still have some of those. In truth, you'd probably do better with those than continuously added GPUs and rewriting all your software to twist all processes into graphics related processes, such that the GPU can blindly operate on them thinking its doing graphics.

Also, the whole thing with dynamics and ray-tracing eludes me. As far as I know, there are almost no cards on the market capable of doing real-time ray-tracing. And no, why would anyone design a graphics processing unit with physics in mind? It eludes all common sense and naming methods. If you were an engineer and were asked to design a sound card, would you be thinking about anything other than processing sound? If you were asked to build a graphing calculator, would you be designing it game playing in mind? Of course not. It makes no economical sense whatsoever, and your design probably won't be approved in the first place.

The point is, if you looked at the market, the marketing the press releases, you'd realize that the whole physics on GPU thing was almost a knee jerk reaction from nVidia so they can sell more people into buying a second video card instead of any possible physics dedicated hardware. If nVidia had the whole physics thing in mind long ago, they would have marketted it the heck out of it long ago and PhysX wouldn't exist in the first place. But the truth is, we never heard anything in the remote ball park of physics on the GPU until Ageia announced the PhysX. So, yes, physics is the next big thing. Is PhysX the solution? Well, it's a dedicated product that's on the market right now. Is physics on GPU a solution? Well, yeah, but it robs you of the graphics performance you would have if you didn't have physics turned on, so it's a hack and marketing stunt aimed at making people throw more money into more graphic cards for reasons other than graphics. I wouldn't be surprised if another company comes out with a product for dedicated hardware AI acceleration that nVidia will counter with some AI on GPU deal. And yes, you can do AI on GPU already, though it's relatively convoluted with the whole encoding to texture, sending it to the GPU, rendering it to an offscreen buffer and doing read pixels to rebuild the texture on the main memory then translating back into the proper form.

Ok, I'm done. Sorry for taking so long.
Advertisement
There are dozens of people pushing their GPUs to the limits through their own real-time ray-tracing research. This is not on bleeding-edge technology either, and it works.

Ray-tracing and the entire field of optics is a huge part of physics. Hence the GPU already is the PPU, but without the extra layer of fluffy marketing spin.

As for dynamics, if you asked any academic in the graphics industry, they will tell you that it is key to computational graphics. GPUs can achieve a lot of this now. CPU/GPU hybrid algorithms make up the difference.

I think you missed the point of my post altogether. No where did I once call into question the validity of any technology. I was only pointing out the obvious truths when it comes to the paradigms behind physical simulation.

Physics on the GPU has been here for a relatively long time in the grand scheme of things. Long enough for it to have proliferated into a gigantic community of GPGPU researchers.

I apologize that I offended you the first time, but I really must stand by what I say because it's the obvious truth.

As for a sound card, could it be responsible for calculating the wave equations behind sound propagation? Yes, it could, but why when it can be done on existing standard GPU hardware that already accelerates the related mathematics?

This is not about diversification and consumer rights, it's about making money by creating a whole new fictitious market to saturate.

If this was really about diversity, NVIDIA wouldn't be screaming from the roof-tops 'Buy my competitor's product, PLEASE!' like they are currently. Nobody does that unless there's something in it for them.

And yes, I'm a capitalist, but I also do research in this field without the end-goal of profit. I'd say that gives me a fair position to be in to make these comments.

P.S. NVIDIA, please let us use our GPUs as we want.

[Edited by - taby on May 16, 2006 10:13:10 PM]
Quote: Original post by WeirdoFu
The promise of the next generation is always a vicious cycle.

Granted, future products are often represented better than what they truely have to offer.

But this time I don't think Intel made any mistakes. The architecture of Core 2 is nothing short of impressive. Also, benchmarks have appeared where single-core applications are 40% faster on average. And dual-core can effectively make things 80% faster. I have an Athlon 64 X2 4400+ and I wouldn't trade it for any single-core. So we're talking about 2.5x more processing power here, effectively. While previously processors only increased performance in little steps, like less than 6% when going from 3.4 GHz to 3.6 GHz. So even if expectations about Core 2 are too high, the performance jump is going to be fenomenal no matter how you look at it. The technical facts are there.

There's also sufficient material about next-generation GPU's and especially Direct3D 10 to realize they will be very well suited for physics processing.
Quote: Technically, I do have my doubts about PhysX, but it is a "solution" that is on the market now and not a promise for the future. That is a big difference.

Please apply the same criticism to PhysX for a moment. We can still consider it next-generation, with lots of promises still unfulfilled. Coincidentally, I bumped into this 'illustrative' advertisement on Beyond3D:

"PhysX Is Here. The Only Choice For Next-Gen Game Physics Acceleration. Don't Get Left Behind."

Is it just me, or do they really sound desperate? Add to this that so far they haven't released any crucial technical facts to prove they have something truely unique (obviously they're afraid of direct comparisons with CPU and GPU architectures). And reviews haven't been very enthousiastic yet. So it's easy to see they just want to sell this now they still can. Like I said before, their site is full of marketing talk, nothing substantial. I must admit though they do a perfect job at bringing this thing in the hands of gamers with money to burn. So I'm more than convinced it's not vaporware and it can do physics processing. But is it cost-effective and future-proof enough to survive in the long run? Sorry, but I believe not. And although that's still only a personal opinion and I could be dead wrong, there are tons of arguments pointing into this direction.
If the PhysX board becomes popular or a staple, like the graphics cards, which I think it will, I wonder if someone will be able to link an open physics engine, such as ODE to the hardware. Or if other physics middleware packages will be able to take advantage of the hardware. I haven't used Ageia physics SDK before, so I don't really know if there would be an advantage to using another package, or not. Just wondering aloud.
Quote: Original post by WeirdoFu
Now if GPU was actually an abbreviation for General Processing Unit, I really wouldn't be feeling so out of whack about the things I'm seeing, but GPU actually stands for GRAPHICS Processing Unit. Why is it that we want a piece of hardware that does graphics do anything else?

Think for a moment about what shaders really are. They are generic 'programs' consisting of arithmetic operations and memory access operations. Note that nowhere in this description I said anything about graphics yet. And as a matter of fact there's absolutely no need to let it perform graphics calculations. There is no difference between the multiplications and additions used in graphics calculations compared to the multiplications and additions used in any other mathematical calculation, including physics. And as taby correctly noted, even graphics calculations can be categorized as physics caculations, optics in particular.

And this is also reflected in the hardware's architecture. Modern GPUs exist out of (mainly) a triangle setup engine, a rasterizer, texture samplers... and huge arrays of SIMD units for shader execution. So only a fraction is really still graphics specific. And this trend is no doubt going to continue. ATI's R580 already tripled the number of SIMD units compared to R520. And with a unified architecture like in the XBox 360 there's already no difference between vertex and pixel processing (even though the actual shaders are very different). The SIMD units can execute any program you like. What's more, with Direct3D 10 there are no limitations on input and output streams, and there's random unsampled memory access.

So is a GPU still a Graphics Processing Unit? Yes, it's still perfectly suited for graphics. It has components specifically for graphics and that's probably not going to change any time soon. But that's only a fraction and making graphics programmable also opened up the opportunity to do high-performance general-purpose processing. So looking at the next-generation as GPU+PPU is really correct. For 300$ extra you can have more SIMD units and extra memory and bandwidth than PhysX could realistically offer. NVIDIA and ATI have many years of experience in producing highly efficient chips.

This topic is closed to new replies.

Advertisement