Physics processing unit: Difference between revisions

Content deleted Content added
m History: fix capitalization, add links, add alt texts
m Vs. GPUs: improve section title, add link
Line 50:
Since Havok's acquisition by [[Intel]], Havok FX appears to have been shelved or cancelled.<ref name="Shilov2007">{{cite web |title=GPU Physics Dead for Now, Says AMD’s Developer Relations Chief |last=Shilov |first=Anton |date=2007-11-19 |accessdate=2007-11-26 |publisher=Xbit Laboratories |url=http://www.xbitlabs.com/news/multimedia/display/20071119065621_GPU_Physics_Dead_for_Now_Says_AMD_s_Developer_Relations_Chief.html |url-status=dead |archiveurl=https://web.archive.org/web/20111201040726/http://www.xbitlabs.com/news/multimedia/display/20071119065621_GPU_Physics_Dead_for_Now_Says_AMD_s_Developer_Relations_Chief.html |archivedate=2011-12-01 }}</ref>
 
==VsPPU vs. GPUs==
The drive toward [[GPGPU]] has made GPUs more suitable for the job of a PPU; DX10 added integer data types, unified shader architecture, and a geometry shader stage which allows a broader range of algorithms to be implemented; Modern GPUs support compute shaders, which run across an indexed space and don't require any graphical resources, just general purpose data buffers. NVidia [[CUDA]] provides a little more in the way of inter-thread communication and [[Scratchpad memory|scratchpad-style workspace]] associated with the threads.
 
Nonetheless GPUs are built around a larger number of longer latency, slower threads, and designed around texture and framebuffer data paths, and poor branching performance; this distinguishes them from PPUs and the[[Cell (microprocessor)|Cell]] as being less well optimized for taking over game world simulation tasks.
 
The [[Sieve C++ Parallel Programming System|Codeplay Sieve compiler]] supports the PPU, indicating that the Ageia physX chip would be suitable for GPGPU type tasks. However Ageia seem unlikely to pursue this market.
Line 64:
 
== PS2 – VU0 ==
Although very different from the PhysX, one could argue the [[PlayStation 2]]'s [[PlayStation 2 hardware#Specifications|VU0]] is an early, limited implementation of a PPU. Conversely, one could describe a PPU to a PS2 programmer as an evolved replacement for VU0. Its feature-set and placement within the system is geared toward accelerating game update tasks including physics and AI; it can offload such calculations working off its own instruction stream whilst the CPU is operating on something else. Being a DSP however, it is much more dependent on the CPU to do useful work in a game engine, and would not be capable of implementing a full physics API, so it cannot be classed as a PPU. Also VU0 is capable of providing additional vertex processing power, though this is more a property of the pathways in the system rather than the unit itself.
Its feature-set and placement within the system is geared toward accelerating game update tasks including physics and AI; it can offload such calculations working off its own instruction stream whilst the CPU is operating on something else. Being a DSP however, it is much more dependent on the CPU to do useful work in a game engine, and would not be capable of implementing a full physics API, so it cannot be classed as a PPU.
Also VU0 is capable of providing additional vertex processing power, though this is more a property of the pathways in the system rather than the unit itself.
 
This usage is similar to Havok FX or GPU physics in that an auxiliary unit's general purpose floating point power is used to complement the CPU in either graphics or physics roles.