Nvidia Physx on CPU or GPU

Status
Not open for further replies.

blackhawk1928

Distinguished
Hi,
So in the Nvidia Control Panel, there is an option for physx...whether to enable/disable and what device basically runs the physx. For mine its set to Auto-Select but I'm pretty sure it defaults to using the GPU. Anyway I got interested and did some online surfing and found many opinions on this and apparently its a controversial topic. Many people say that you should let the CPU do it if its powerful enough to offload work from the GPU and allow the GPU to concentrate on other things, while others say the GPU is designed for it and therefore the GPU should do it. Well I've done some experiments...since none of the games I have support physx apparently I tried using a benchmark like heaven/supersonic sled/stone giant and I don't know if they support physx or not, but I tried and I didn't really see a performance change, maybe I didn't benchmark as consistent as I should have. But either way, the logical solution for physx in my opinion would be to let the CPU do it. If your CPU is powerful enough to handle it...why wouldn't you let it do physx so the GPU would have to work less and ultimately you can crank up other settings since your GPU doesn't need to worry about the physx. Why even get a dedicated physx card if you could just let your CPU do it.? Am I missing anything here? Thanks for any help or opinions on it.
 
Supersonic Sled is the only test that uses physX out of your list.

In most "physX" situations, it's handled on the CPU, but that's because most physX games do not use much physX effects. You can do a search for a list which has a 100 or more games and all but about 17-20 of these games do not have GPU accelerated physX.

Unless the games uses physx heavily, the CPU handles it just fine. On these games that uses physX heavily, they usually give you an option to use advanced PhysX or PhysX in general. In these games, you will want your graphics card to handle the physX, or not use the advanced physX options. The CPU will not be strong enough in almost all these situations.
 
Some of your confusion is because a lot of these arguments are based on what they think developers should do, and how physX should be coded.

A lot of people believe that if physX was coded better, it could run on the CPU well enough, to not need to draw computational power from the GPU, resulting in better overall gaming. These are just opinions on what they "wish" would take place, not on the reality of what we are given.
 

notty22

Distinguished
We think our quad cores are powerful, yes they are. Gpu's are more powerful.
Leaving that setting on auto, and it showing as using your gpu is the best setting.
It will still go to you cpu if the program is coded that way. You can put the physx indicator on , and it will show whats running physX-cpu or gpu with a OSD in game.
For example:
Aliens and Triangles always uses 'cpu' when I have it on auto and gpu2 is set to do physX
Also
NFS shift , uses PhysX in its game engine, and regardless of of your NV control panel only uses the cpu for physX.
Mafia II is a good example of performance difference you can see, by forcing to use cpu over gpu. There is a demo benchmark you can d/l.
A good bencmark to see the power of the gpu is ratgpu ,written in openCL, I believe AMD and Nvidia cards can run it. Its a renderprogram
My sli 460 run it in 38 seconds, when the cpu is selected at 100% usage it takes 10 minutes.
 


The main confusion is the speculation on what would be best, CPU or GPU. These aren't the current games they are talking about, but if it was created this way, what would be better for us.

As far as this particular example you gave, it also doesn't take into consideration, that if this was type of calcuation was done on the GPU, it takes away the ability for the GPU to render frames. The question ends up being, "what is the best compromise. Physics run on the CPU at lower quality, and higher quality image quality on the GPU rendering, or is having the physics on the GPU worth the loss of rendering power?"
 

blackhawk1928

Distinguished
But how is the CPU more powerful though. I just don't get it. Lets take an i7 920 like I have for example. You're saying a CPU with 4 cores, each clocked at 2.6Ghz is more powerful then a video card processor with a clock usually below 1Gh...? I just don't get it. I would imagine a CPU being tons more powerful then a GPU.
 


The CPU is not more powerful at floating point calculations, which is essentially what PhysX does.

The argument is not about what is more powerful. The argument is that for gaming purposes, the CPU has enough power for decent physics without needing to draw power from the GPU's main task of rendering frames. It's also an argument that is aimed at single GPU systems.

Weither it's true or not is up to opinion. But these are just speculations.
 

s43n

Distinguished
Feb 28, 2011
2
0
18,510


Video cards are by design made to process massively parallel tasks, like rendering individual pixels on a screen. CPUs are designed to perform tasks that aren't as parallel, and need single (or few) threaded power. It just happens that something such as scientific research can take advantage of this parallelism.

Think of parallelism like assigning 1000 people to work on a skyscraper, it will go immensely faster than if it was a single man. But if you tell 1000 people to solve a single rubics cube, it wont go any faster than a lone man. There are just some tasks that have inherent parallelism, and some that don't.
 
Leave your settings on Auto. Whenever possible, you want the GPU to handle PhysX. For me it's 512 GPU cores vs. 4 CPU cores, it's pretty simple math, but PhysX is also coded by Nvidia to perform better on an Nvidia GPU than a CPU. This is actually pretty easy to see as there are numerous reviews showing the difference in various games using CPU's and GPU's:

Mafia2_DX11_GPU-CPU_PhysX_Benchmark.jpg


cpuphysx1920.gif


www.bit-tech.net/hardware/graphics/2010/09/03/mafia-2-physx-performance/2
" the vast majority of games that use hardware PhysX today aren't optimized for CPU execution and drop to a stuttering crawl when tasked to do so."
 
The i7 isn't powerful enough even at 4ghz + and above to really provide playable fps with physx enabled in supported games when it is under full load. Even for ati users playing physx games often resort to going without or getting a dedicated card. The original titles were no ware near as demanding as the newer ones released in the past year and nvidia is doing this on purpose to help force people to buy there cards or not play that game/s. A 4 year old Ageia ppu often wipes the floor in physx compared to any cpu on the market and is on par with that of a 8600gt (need more info there) but over all no one can deny the overhead that it brings but for some of us who value the extra effects it is worth it even if it costs $50-70 more for a dedicated card.
 
PhysX is a propitiatory nvidia effect, as such its designed to run on nvidia GPU's A single mid powered GPU wont have the grunt to do both PhysX and rendering so its a 6 of one and 6 of the other kind of scenario really.
If you want PhysX properly then you realistically need a dedicated PhysX card.

Just leave it on Auto.

Mactronix :)
 
Most PhysX implementations use only the "basic" library, and run only on the CPU. Some of the more advanced effects, especially the ones which require multiple-interactions, essentially requires the GPU instead.

In theory, the massivly parrallel architecture of the GPU is much more efficent for large scale physics calaculations then the CPU, but the GPU also has to deal with the rendering workload. At some point, if we start to take in-game physics seriously [as most implementations stink right now], we'll probablly need another card to handle that.

It is interesting how the PhysX debate mirrors the "Graphical Accelerator" debate of the mid-90's though; I still remember some people who argued the CPU was perfectly capable of rendering advanced 3d graphics without needing a seperate add-in card...
 

ayporos

Distinguished
Apr 24, 2011
2
0
18,510
What you have to realise mostly in this particular debate is the design differences between a GPU and CPU.

A CPU is a very 'broadband' sort of chip, it supports a very wide range of operations and instructions and as such is a very 'multi-purpose' chip.
Utilizing a CPU to its fullest potential is neigh impossible as you would have to put exactly enough workload on all the possible instructions and operations it can perform per 'tick'.

A GPU however is a very different beast.
It sports floating-point processing a CPU would raise its eyebrow to and is more geared towards specific instructions but most importantly it is built to do a lot of these operations in parallel, where a CPU is more geared towards sequential processing.


The reason both have been developed this way is due to the requirement of said chip.
Graphical calculations don't translate well to CPU instructions which is why GPUs exist to begin with.

Now say for instance you never wanted to work again.. slapping together an algorithm/way/method to transform 'GPU calculations' to CPU-friendly calculations would make you set for life, seriously.

So basically what you're dealing with when letting your CPU take care of 'minimal' physx work is a CPU that is using MUCH MORE resources on calculating stuff a GPU could do in idle mode.. wasting a TON of your CPU's potential per tick and also wasting a TON of heat and power that your CPU is using to waste those ticks.

What it boils down to:
- If you have a moderate GFX card (anything 2xx series and up to 460) I recommend you just play physx-light/older games on your GPU and disable physx in the more graphically challenging games. Then again this is assuming you favour neat graphics over realistic bouncing around of objects, the other way around is perfectly acceptable as well.

I personally run an Intel i7 950 (4x3.06Ghz + Hyper-Threading) and a GTX460 1Gb but I wouldn't DARE let my CPU touch any physx work.
Then again I haven't really run into a game that taxes my GPU enough to make me contemplate turning physx off. AA, vSync and AF are usually great sacrifices to boost FPS dramatically.. not to mention vSync in some games can cause some MAJOR EPIC input lag.

I recently started playing Portal 2.. went for everything at max with AA x8, AF x8 and vSync (tripple buffered). It bombed. AA x4, AF x4 and vSync untouched provided much better FPS with still STUNNING graphics.. but I had some HORRIBLE input lag. It was so horrible I thought the developers put it in on purpose for 'realism' or something. Then I switched vSync off for the hell of it cuz portal told me to (omg how annoying is it to have to look at an annoying screen where you have to press 'ok' to telling you what the setting you just TRIED to click and alter does) and VOILA: instant-response. I was baffled. from almost 1,5-3 seconds of lag to no noticable delay at all!

Whoops, I've derailed a little bit! Anyway, I hope this helps!

 
Status
Not open for further replies.