Physics processing unit: Difference between revisions

Content deleted Content added
No edit summary
 
(22 intermediate revisions by 18 users not shown)
Line 1:
{{more sources|date=March 2015}}
{{short description|Type of dedicated microprocessor}}
A '''physics processing unit''' ('''PPU''') is a dedicated [[microprocessor]] designed to handle the calculations of [[physics]], especially in the [[physics engine]] of [[video game]]s. 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 [[Cloth_modelingCloth modeling|clothing simulation]], [[finite element analysis]], and fracturing of objects.
 
The idea is thathaving 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 asbeing a PPU.
 
==History==
An early academic PPU research project<ref>S. Yardi, B. Bishop, T. Kelliher, "[http://www.cs.scranton.edu/%7Ebishop/2006acmse.pdf HELLAS: A Specialised Architecture for Interactive Deformable Object Modeling]", ACM Southeast Conference, Melbourne, FL, March 10–12, 2006, pp. 56–61.</ref><ref>B. Bishop, T. Kelliher, "[http://www.cs.scranton.edu/%7Ebishop/TCSVT.ps Specialized Hardware for Deformable Object Modeling]," IEEE Transactions on Circuits and Systems for Video Technology, 13(11):1074–1079, Nov. 2003.</ref> named SPARTA (Simulation of Physics on A Real-Time Architecture) was carried out at Penn State<ref>{{cite web |url=http://www.cse.psu.edu/~mdl/sparta/ |title=SPARTA Homepage |publisher=Cse.psu.edu |accessdateaccess-date=2010-08-16 |url-status=dead |archiveurlarchive-url=https://web.archive.org/web/20100730051043/http://www.cse.psu.edu/~mdl/sparta/ |archivedatearchive-date=2010-07-30 }}</ref> and University of Georgia. This was a simple [[FPGA]] based PPU that was limited to two dimensions. This project was extended into a considerably more advanced [[Application-specific integrated circuit|ASIC]]-based system named HELLAS.
 
February 2006 saw the release of the first dedicated PPU [[PhysX]] from [[Ageia]] (later merged into [[nVidia|Nvidia]]). The unit is most effective in accelerating [[particle systems]], with only a small performance improvement measured for rigid body physics.<ref>{{cite web|url=http://www.anandtech.com/show/2001/4 |archive-url=https://web.archive.org/web/20100908034558/http://www.anandtech.com/show/2001/4 |url-status=dead |archive-date=September 8, 2010 |title=Exclusive: ASUS Debuts AGEIA PhysX Hardware |publisher=AnandTech |access-date= |accessdate=2010-08-16}}</ref> The Ageia PPU is documented in depth in their US patent application #20050075849.<ref>{{cite web |title=United States Patent Application: 0050086040 |url=http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=1&f=G&l=50&s1=%2220050075849%22.PGNR.&OS=DN/20050075849&RS=DN/20050075849 |titlearchive-url=United States Patent Applicationhttps: 0050086040 |publisher=Appft1//web.archive.org/web/20200210071733/http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=1&f=G&l=50&s1=%2220050075849%22.PGNR.&OS=DN/20050075849&RS=DN/20050075849 |archive-date=2020-02-10 |accessdateaccess-date=2010-08-16 |publisher=Appft1.uspto.gov}}</ref> Nvidia/Ageia no longer produces PPUs and hardware acceleration for physics processing, although it is now supported through some of their graphics processing units.
 
<gallery class="center" caption="Academic PPU research projects">
File:SPARTA animation.jpg|alt=Example SPARTA animation|Example SPARTA animation
File:SPARTA board.jpg|alt=SPARTA printed circuit board|SPARTA [[Printed circuit board]]
File:Hellas die.jpg|alt=Hellas die photo|Hellas [[Die (integrated circuit)|die]] photo
</gallery>
 
==AGEIA PhysX==
The first processor to be advertised asbeing a PPU was callednamed the [[PhysX]] chip, introduced by a [[fabless semiconductor company]] called [[AGEIA]]. Games wishing to take advantage of the PhysX PPU must use AGEIA's [[PhysX]] [[Software development kit|SDK]], (formerly known as the NovodeX SDK).
 
It consists of a general purpose RISC core controlling an array of custom [[Single instruction, multiple data|SIMD]] floating point [[VLIW]] processors working in local banked memories, with a switch-fabric to manage transfers between them. There is no [[Cache hierarchy|cache-hierarchy]] aslike in a CPU or GPU.
 
The PhysX was available from three companies akin to the way [[video card]]s are manufactured. [[ASUS]], [[BFG Technologies]],<ref>{{cite web |url=http://www.bfgtech.com/news_8.31.05.html |title=Archived:::News copyRelease::: |accessdateaccess-date=2011-06-08 |url-status=dead |archiveurlarchive-url=https://web.archive.org/web/20060426124859/http://www.bfgtech.com/news_8.31.05.html |archivedatearchive-date=2006-04-26 }}</ref> 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]].<ref>{{cite magazine | url=https://books.google.com/books?id=mAIAAAAAMBAJ&pg=PA6#v=onepage&q=&f=false | title=BFG Tech ad for the PhysX |magazine=[[Maximum PC]] | date=May 2006 | page=6 | publisher=[[Future US]] | ISSNissn=1522-4279 | accessdateaccess-date=2009-09-16}}</ref>
 
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,<ref>[http://www.custompc.co.uk/news/602205/nvidia-offers-physx-support-to-amd--ati.html Nvidia offers PhysX support to AMD / ATI] {{webarchive|url=https://web.archive.org/web/20080313220419/http://www.custompc.co.uk/news/602205/nvidia-offers-physx-support-to-amd--ati.html |date=2008-03-13 }}</ref> 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.
Line 30 ⟶ 31:
===PhysX P1 (PPU) hardware specifications===
[[ASUS]] and [[BFG Technologies]] bought licenses to manufacture alternate versions of AGEIA's PPU, the PhysX P1 with 128&nbsp;MB GDDR3:
* Multi-core device based on the [[MIPS architecture]] with integrated physics acceleration hardware and memory subsystem with "tons of cores"<ref>{{cite web |url=http://www.nvidia.com/object/physx_faq.html |title=PhysX FAQ |date=28 November 2018 |publisher=NVIDIA Corporation}}</ref><ref>{{cite web |url=http://www.blachford.info/computer/articles/PhysX2.html |title=Lets Get Physical: Inside The PhysX Physics Processor |publisher= |author=Nicholas Blachford |date=2006}}</ref>
** 125 million [[transistor]]s<ref name="Legit Reviews">[http://www.legitreviews.com/article/346/2/ Legit Reviews - ASUS's AGEIA PhysX P1 Card]</ref>
** 182&nbsp;mm<sup>2</sup> [[die (integrated circuit)|die]] size
** Fabrication process: [[130 nanometer|130&nbsp;nm]]
Line 42 ⟶ 43:
 
==Havok FX==
The [[Havok (software)|Havok]] SDK is a major competitor to the PhysX SDK, used in more than 150 games, including major titles like [[Half-Life 2]], [[Halo 3]] and [[Dead Rising]].<ref>[{{Cite web |url=http://www.havok.com/content/blogcategory/29/73/ |title=Games using Havok] |access-date=2007-02-19 |archive-url=https://web.archive.org/web/20120415152405/http://havok.com/customer-projects/games |archive-date=2012-04-15 |url-status=dead }}</ref>
 
To compete with the PhysX PPU, an edition known as [[Havok (software)|Havok FX]] was to take advantage of multi-GPU technology from [[ATI Technologies|ATI]] ([[AMD CrossFire]]) and [[NVIDIA]] ([[Scalable Link Interface|SLI]]) using existing cards to accelerate certain physics calculations.<ref>[http://www.havok.com/content/view/187/77/ Havok FX product information] {{webarchive|url=https://web.archive.org/web/20070302132522/http://www.havok.com/content/view/187/77/ |date=2007-03-02 }}</ref>
 
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.<ref name="Shilov2007">{{cite web |title=GPU Physics Dead for Now, Says AMD’sAMD's Developer Relations Chief |last=Shilov |first=Anton |date=2007-11-19 |accessdateaccess-date=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 |archiveurlarchive-url=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 |archivedatearchive-date=2011-12-01 }}</ref>
 
==PPU 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 shadersshader]]s, 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 [[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.
 
==Intel Xeon Phi==
 
Like the Cell, [[Xeon Phi]] sits between the CPU and the GPU, in the spectrum between, general purpose processing versus specialized high-performance back-end processing. This uses caches rather than [[scratchpad memory|scratchpads]], but still manages to achieve high throughput.
 
[[Advanced Micro Devices|AMD]] have declared their long term intention to enable [[AMD Accelerated Processing Unit|AMD APUs]] to use [[Radeon]] as a vector co-processor, sharing resources such as [[cache hierarchy]]. This future configuration started materializing in the form of [[Heterogeneous System Architecture]].
 
== PS2 – VU0 ==
Line 69 ⟶ 64:
 
==See also==
 
* [[PhysX]]
* [[adapteva]]
* [[CELL]]
* [[Digital signal processor]]
* [[General-purpose computing on graphics processing units (software)|General-purpose computing on graphics processing units]] (GPGPU) – for applications of existing GPUs to the same physics problems PPUs are designed for
* [[Microsoft Robotics Studio]]
* [[OpenCL]]
* [[PAL (software)|Physics Abstraction Layer]]
* [[Scratchpad RAM]] – relevant to the distributed memory architecture of the Ageia PhysX PPU
* [[Vision processing unit]]
* UA6528 Price & Stock<ref>https://www.digipart.com/part/UA6528</ref>
 
==References==
Line 90 ⟶ 82:
* [http://www.hothardware.com/articles/BFG_Ageia_PhysX_Physics_Card/ BFG AGEIA PhysX Card Review]
* [https://web.archive.org/web/20070113005648/http://planetphysx.com/ Planet PhysX News & Information Page] (no longer available)
* [https://web.archive.org/web/20050309033254/http://www.gamers-depot.com/interviews/agiea/001.htm PC Hardware: AGEIA PhysX Interview] (no longer available)
* [https://web.archive.org/web/20051221231246/http://www.pcper.com/article.php?aid=140&type=expert&pid=1 PC Perspective: AGEIA PhysX Physics Processing Unit Preview] (no longer available)
* [https://web.archive.org/web/20070302132522/http://www.havok.com/content/view/187/77/ Havok FX physics engine (middleware library) SDK] (no longer available)
* [http://developer.nvidia.com/object/cuda.html NVIDIA CUDA Toolkit and SDK]