Skip to main content

Analysis: PhysX On Systems With AMD Graphics Cards

CPU-Based PhysX: Relevance

Relevance of the CPU PhysX solution

Let’s first examine the fact that Nvidia currently only allows GPU-accelerated PhysX on its own graphics cards, thus forcing everyone else to calculate the PhysX instructions implemented in games using the CPU. The result for non-Nvidia gamers is usually an unplayable game when you turn PhysX on without a GeForce card installed. Obviously, the goal of this article is not to judge business decisions, but rather to understand the lack of performance experienced on systems not equipped with Nvidia graphics cards.

Why is CPU PhysX so much slower than GPU PhysX in modern games?

Assuming that a calculation can be parallelized, a GPU with its multiple shader units is faster than a conventional CPU with two, three, four, or even six cores. According to Nvidia, physics calculations are two to four times faster on GPUs than CPUs. That’s just half of the truth, though, because there are no physics features that couldn’t be implemented solely on the CPU. Quite often, games use a combined CPU + GPU approach, with the highly parallelizable calculation,s such as particle effects, performed by the GPU and the more static, non-parallelizable calculations, such as ragdolls, performed by the CPU. This is the case in Sacred 2, for example. In theory, the ratio of highly parallelizable calculations should in many cases be too low to really take noticeable advantage of the immense GPU speed.

But then why is the difference often so drastic in practice?

There are at least two reasons for this. The first one is that, in almost all of the games tested, CPU-based PhysX uses just a single thread, regardless of how many cores are available. The second one is that Nvidia seems to be intentionally not optimizing the CPU calculations in order to make the GPU solution look better. We’ll have to investigate multithreading at a later time with a suitable battery of benchmarks. Right now, we want to explore Nvidia deliberately leaving its code in a state where CPUs just can’t compete with GPUs.

  • eyefinity
    So it's basically what everybody in the know already knew - nVidia is holding back progress in order to line their own pockets.
    Reply
  • Emperus
    Is it 'Physx by Nvidia' or 'Physx for Nvidia'..!! Its a pity to read those lines wherein it says that Nvidia is holding back performance when a non-Nvidia primary card is detected..
    Reply
  • It looks like the increase in CPU utilization with CPU physX is only 154%, which could be 1 thread plus synchronization overhead with the main rendering threads.
    Reply
  • eyefinity
    The article could barely spell it out more clearly.

    Everyone could be enjoying cpu based Physics, making use of their otherwise idle cores.


    The problem is, nVidia doesn't want that. They have a proprietary solution which slows down their own cards, and AMD cards even more, making theirs seem better. On top of that, they throw money at games devs so they don't include better cpu physics.

    Everybody loses except nVidia. This is not unusual behaviour for them, they are doing it with Tesellation now too - slowing down their own cards because it slows down AMD cards even more, when there is a better solution that doesn't hurt anybody.

    They are a pure scumbag company.
    Reply
  • rohitbaran
    In short, a good config to enjoy Physx requires selling an arm or a leg and the game developers and nVidia keep screwing the users to save their money and propagate their business interests respectively.
    Reply
  • iam2thecrowe
    The world needs need opencl physics NOW! Also, while this is an informative article, it would be good to see what single nvidia cards make games using physx playable. Will a single gts450 cut it? probably not. That way budget gamers can make a more informed choice as its no point chosing nvidia for physx and finding it doesnt run well anyway on mid range cards so they could have just bought an ATI card and been better off.
    Reply
  • guanyu210379
    I have never cared about Physics.
    Reply
  • archange
    Believe it or not, this morning I was determined to look into this same problem, since I just upgraded from an 8800 GTS 512 to an HD 6850. :O

    Thank you, Tom's, thank you Igor Wallossek for makinng it easy!
    You just made my day: a big thumbs up!
    Reply
  • jamesedgeuk2000
    What about people with dedicated PPU's? I have 8800 GTX SLi and an Ageia Physx card where do I come into it?
    Reply
  • skokie2
    What is failed to be mentioned (and if what I see is real its much more predatory) that simply having an onboard AMD graphics, even if its disabled in the BIOS, stops PhysX working. This is simply outragous. My main hope is that AMD finally gets better at linux drivers so my next card does not need to be nVidia. I will vote with my feet... so long as there is another name on the slip :( Sad state of graphics generally and been getting worse since AMD bought ATI.. it was then that this game started... nVidia just takes it up a notch.
    Reply