At Real World Technologies, David Kenter has presented a new report that gives large explanations of how PhyX is executed on a standard x86 CPU. PhysX uses a very old method of calculating floating points. It uses the primitive x87 instructions for the vectorization instead of taking use of the much advance vectorization capabilities of SSE and SSE2 that are the core of the x86 CPU.
Previous Blame Game
It is now more than a month that there was some shin-kicking between NVIDIA and it head to head competitor, ATI. ATI blamed NVIDIA for crippling the performance of the CPUs while running PhysX code. This way ATI claimed that NVIDIA is forcing developers to make use of their GPUs. For this the NVIDIA denied any such facts. One of the other blames on NVIDIA was put by Intel whereby they presented a whitepaper that claimed that NVIDIA’s test case for the claim of high GPU performance advantages was totally unfair.
A Word With PhysX Team
When the people of Hot Hardware talked to the team of PhysX team at NVIDIA they agreed upon a fact that they have spent more time and resources in optimizing PhysX to give high end performance on Xenon processor of XBOX 360 and Cell processor of the PS3 as compared to the x86 based processors. Upon talking further the PhysX team said that there are good and very solid technical reasons for the said optimization as far as PS3’s Cell processor is concerned. To support this statement they said that the Cell processor is designed in a fashion that if you run a properly tweaked code on it, it would blow past any x86 platform based CPU with a big margin. And if in any case you miss these optimizations, it would make you wish to have a 486, which by all means would prove faster than the Cell processor.
Evolution of PhysX
NovodeX developed the software version of the PhysX when it acquired Ageia back in 2004. At that time Ageia had on papers, the design to build a Physics Processing Unit that could aceelerate PhysX in hardware. This hardware accelerated PPU was named as Version 2. The underlying code for this hardware based accelerated engine was of NovodeX. The former employees of Ageia who now are working at NVIDIA told that NovodeX started building the original SDK back in 2002- 2003.
It was in 2008 when NVIDIA acquired Ageia, but by then Ageia had already deployed PhysX to XBOX 360 and PS3 platforms. After this NVIDIA started working on porting PhysX on the GPU and started focusing its development in this area. As told by NVIDIA, they have improved upon the multithreading and general performance of the SDK but they certainly face limitation when optimizing an 8 year old engine without breaking backwards compatibility.
NVIDIA has worked out on the best strategy that would force people buy the GPUs. They have made an image that only NVIDIA can provide the amazing and stunning special effects. And if they optimize PhysX for x86 then the passion of users to buy NVIDAI GPUs would die. Another strategy that NVIDIA has applied is to use the psyche of developers to use the enormous hardware power available, which would make users buy GPUs to get the most out of the games.