A physics processing unit ( PPU) is a dedicated microprocessor designed to handle the calculations of physics, especially in the physics engine of . It is an example of hardware acceleration.
Examples of calculations involving a PPU might include rigid body dynamics, soft body dynamics, collision detection, fluid dynamics, hair and clothing simulation, finite element analysis, and fracturing of objects.
The idea is having specialized processors offload time-consuming tasks from a computer's CPU, much like how a GPU performs graphics operations in the main CPU's place. The term was coined by Ageia to describe its PhysX chip. Several other technologies in the CPU-GPU spectrum have some features in common with it, although Ageia's product was the only complete one designed, marketed, supported, and placed within a system exclusively being a PPU.
February 2006 saw the release of the first dedicated PPU PhysX from Ageia (later merged into nVidia). The unit is most effective in accelerating particle systems, with only a small performance improvement measured for rigid body physics. The Ageia PPU is documented in depth in their US patent application #20050075849. Nvidia/Ageia no longer produces PPUs and hardware acceleration for physics processing, although it is now supported through some of their graphics processing units.
It consists of a general purpose RISC core controlling an array of custom SIMD floating point VLIW processors working in local banked memories, with a switch-fabric to manage transfers between them. There is no Cache hierarchy like in a CPU or GPU.
The PhysX was available from three companies akin to the way are manufactured. ASUS, BFG Technologies, and ELSA Technologies were the primary manufacturers. PCs with the cards already installed were available from system builders such as Alienware, Dell, and Falcon Northwest.
In February 2008, after Nvidia bought Ageia Technologies and eventually cut off the ability to process PhysX on the AGEIA PPU and NVIDIA GPUs in systems with active ATi/AMD GPUs, it seemed that PhysX went 100% to Nvidia. But in March 2008, Nvidia announced that it will make PhysX an open standard for everyone, Nvidia offers PhysX support to AMD / ATI so the main graphic-processor manufacturers will have PhysX support in the next generation graphics cards. Nvidia announced that PhysX will also be available for some of their released graphics cards just by downloading some new drivers.
See physics engine for a discussion of academic research PPU projects.
To compete with the PhysX PPU, an edition known as Havok FX was to take advantage of multi-GPU technology from ATI Technologies (AMD CrossFire) and NVIDIA (SLI) using existing cards to accelerate certain physics calculations. Havok FX product information
Havok divides the physics simulation into effect and gameplay physics, with effect physics being offloaded (if possible) to the GPU as Shader Model 3.0 instructions and gameplay physics being processed on the CPU as normal. The important distinction between the two is that effect physics do not affect gameplay (dust or small debris from an explosion, for example); the vast majority of physics operations are still performed in software. This approach differs significantly from the PhysX SDK, which moves all calculations to the PhysX card if it is present.
Since Havok's acquisition by Intel, Havok FX appears to have been shelved or cancelled.
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 Cell as being less well optimized for taking over game world simulation tasks.
The 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.
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.
|
|