Log in

View Full Version : Enabling Physx - An Option That May Be Backfiring ?



LeftEyeNine
09-04-2009, 22:07
As you may be aware, from a certain Nvidia Forceware drivers and on, for 8xxx cards and higher (IIRC), you have Physx option at your service that hands in-game physics calculations over to be executed by your GPU, instead of the ordinary method, by CPU.

I have an Intel Core i7 920 (4 physical, 8 logical cores) and a weakling 9500GT. I had enabled Physx some time ago, however after especially playing Sacred 2 for some days now, I'm wondering if I had done the right thing.

Obviously, my CPU is monstrous compared to my GPU barely making it, and I doubt if having my GPU do the math for in-game physical aspects is performance breaking.

Did I get the whole logic wrong or should I think over what I had done by enabling that ?

Thanks in advance.

Husar
09-05-2009, 03:19
Wrong.

PhysX usually does not take away any physics from the CPU, in most games it adds physics that are nonexistant if the game uses only the CPU for physics(because a modern high-end graphics card would beat even your i7 in physics calculations), with your 9500GT you should probably disable it. From a topic I saw in a german hardware forum, the 9500GT was the lowest card they recommended as a second card for physics only, making it calculate both graphics and physics should cause quite a performance hit.
I'd just take fraps and try with and without it if I were you.

LeftEyeNine
09-05-2009, 05:26
Believe it or not (same goes for me), I disabled Physx to be processed by GPU (it notes that the CPU will take over), got into the game, checked to see that Physx effects are still enabled in graphics options and the game was almost a slideshow as soon as it loaded.

The game is Sacred 2, btw.

I'm definitely confused now.

Husar
09-05-2009, 10:04
Right.

I don't have Sacred 2 so I didn't know it allows for PhysX being on but CPU calculated. Obviously your 9500GT still blows your i7 away when it comes to handling these PhysX effects, in order to get the best performance PhysX related you should probably turn off the PhysX effects entirely. Of course they will be gone then but if it is between PhysX calculated by CPU and PhysX calculated by GPU the GPU obviously always wins and your beast of a CPU turns into a whinging baby, this is more or less underlined by the benchmarks I've seen I just wasn't sure whether the concept can still be applied to as low a card as the 9500GT. ~;)

Generally speaking graphics cards are very well suited to calculating physics which is one of the reasons they are given that task in the first place, they're obviously so good at it that it can be better to have them do the graphics AND physics than have them do just the graphics and the CPU the physics + rest. Which is why I assumed there would hardly be a game that allows for additional PhysX(additional because it's NVidia only since they bought Ageia who invented it for their standalone cards) if you use an NVidia card to calculate it.

LeftEyeNine
09-05-2009, 16:49
This is still beyond understandability for me. How come a weakling GPU of 9500GT can beat a latest gen Core i7 when it comes to physics math ?

Husar
09-05-2009, 19:38
Because in a way it has like 64 cores or however many shader units a 9500GT has, and the kind of mathematical operations required for physics can be calculated very quickly by those, apparently.
Whereas the CPU has only 4 real cores which can be used for more complicated calculations and operations but have a lot of wasted potential for the basic calculations required by physics.
Let me think of some stupid car analogy...

let's say you have four trucks and 64 Minis and you have to get 128 people who really hate one another from point A to B without anyone getting killed but you have to decide whether to use the four trucks or the 64 minis (yes, it's ridiculous but with some fantasy you may get the point), so which cars will get the 128 passengers faster from A to B? The 64 Minis which would have to go from A to B and back just twice(since you could only carry one person per car) or the 4 trucks which would have to go the same distance 32 times despite their potentially higher payload?
As you can see, even if you have to use 32 minis to calculate some polygons and shaders, they will still get the job done faster.

That's how I understand it anyway.

Ok, now without cars, you have a supermarket, you need personnel for the cash registers, you can either hire 32 students who can do basic maths or 4 mathematics professors, who can manage more customers per hour?

LeftEyeNine
09-05-2009, 20:55
Assuming some professor who would care about working as a cashier in a supermarket is highly like to be fake, I'd go with the students. (teee-heee-heee-heee)

Turning Physx back on, my game flow is back as how it used to be. I should I'm surprised with such fact.

Thanks for tips, Hus-hus. I can be your friend and will not whine about it. (teee-heee-heee-heee)

Tellos Athenaios
09-08-2009, 03:08
Just a short note: a very simple model of a graphics card can be seen as "a thing that consists of *many* weak little units that can do a tiny bit of calculation per unit". By contrast the CPU consists of a few but powerful such units (which can do complex pieces of calculation including interrupting code "flow" to respond to user input).

Nvidia card design in particular is about "many weak ones is better than a few strong ones"; with ATI using somewhat more complex designs.

Now the thing with both graphics and physics (graphics are very basically a sort of physics) is that you do not model very complex things (the code is actually executed is very trivial at any sub-step; the total however can be fairly complex) but you model a lot of it (high resolutions/ large dimensions). The code that is sent to your graphics card for instance never has to handle user input -- it couldn't possibly do it because its design doesn't allow it. But a graphics card can do a "lot of small simple things" a time (i.e. in parallel; i.e. batch computing) which suits an animation (or physics/graphics model) perfectly fine so long the intervals between batch input (the device driver sends data in main memory to the graphics card) output (the graphics card emits the result data back to the device driver which places it in main memory again) are sufficiently small that the FPS remains high enough.

Husar
09-08-2009, 14:32
That's what I was trying to say with the professor(CPU core) and student(GPU shader unit) analogy but you explained it a bit better I think. :2thumbsup:

LeftEyeNine
09-08-2009, 18:29
Aye, that helps a lot for mi dummi head.

:bow: