Physikbeschleuniger
Unter einem Physikbeschleuniger versteht man einen speziellen Prozessor (engl. PPU als Abkürzung für Physics Processing Unit) zur eigenständigen Berechnung vorrangig physikalischer Effekte. Analog der Nutzung einer GPU soll die Verwendung einer PPU den Hauptprozessor entlasten.
Physik-Engines spielen in modernen Computerspielen zur Vermittlung einer realistischen Umwelt eine wichtige Rolle. Es ist naheliegend, ähnlich strukturierte Berechnungen (z. B. Kollision zweier Körper) an einen dedizierten Prozessor auszulagern.
Mit Hilfe eines Physikbeschleunigers ist es möglich, bestimmte Effekte genauer, umfangreicher und vor allem schneller als bisher zu berechnen. Dies entlastet den Hauptprozessor, dem dann mehr Rechenzeit für andere Aufgaben zur Verfügung steht (z. B. zur Berechnung der Künstlichen Intelligenz).
PhysX heißt der erste Physikbeschleuniger, ist ein Produkt der Firma Ageia und wurde am 8. März 2005 auf der Game Developers Conference in San Jose vorgestellt. Dieser unterstützt die Simulation von Kleidung, Haaren, Festkörpern sowie Flüssigkeiten, kann aber auch zur Kollisionserkennung und -berechnungen verwendet werden.
Software
Um die Funktionalität eines Physikbeschleunigers nutzen zu können, muss die (bei einem Computerspiel) verwendete Physik-Engine diesen unterstützen. Mit anderen Worten, die Physik-Engine benutzt die von der PPU angebotene Funktionalität und bildet somit die Schnittstelle zwischen Anwendung (z. B. Computerspiel) und Hardware. Im Fall von PhysX wurde dafür eigens die PhysX API (vormals NovodeX) entwickelt.
Eine Physik-Engine läuft aber auch ohne Physikbeschleuniger, profitiert jedoch durch das Vorhandensein eines solchen.
PPUs werden in Zukunft auch in Konsolen verbaut werden. So haben Sony und Microsoft zur Integration der PhysX API in der PlayStation 3 resp. Xbox 360 Vereinbarungen mit Ageia getroffen. Auch Anbieter von 3D-Software wie Autodesk, Softimage und Futuremark bieten oder kündigen Unterstützung für PhysX an.
Produkte
Gegenwärtig unterstützt PhysX sowohl das PCI- als auch das PCI-Express-Interface und wird somit wohl auf Basis einer Erweiterungskarte angeboten werden. Für die Zukunft ist auch die Integration in die Hauptplatine geplant. Selbst die Implementierung auf einer Grafikkarte ist möglich.
Die ersten Erweiterungskarten mit PCI-Schnittstelle wurden Ende 2005 erwartet. Die Einführung verschob sich aufgrund der zu diesem Zeitpunkt geringen Anzahl PhysX unterstützender Software. Die Grafikkarten-Hersteller BFG und Asus vertreiben seit ca. Mitte Mai 2006 ihre Erweiterungskarten mit PhysX-PPU. Die zwischen 180-200 € teuren Produkte halten sich dabei an das Referenzdesign von Ageia und werden unter dem Namen "PhysX P1 Graw Edition" (Asus) und "PhysX Accelerator" (BFG) vertrieben.
In den Komplettsystemen von Alienware, Dell und Falcon Northwest wurden dagegen schon eher die Physikbeschleuniger von BFG integriert.
Laut Ageia werden PCIe-Erweiterungskarten im Laufe dieses Jahres folgen.
Grafikkarten und Physikberechnungen (GPGPU)
Eine weitere Möglichkeit zur beschleunigten Physikberechnung ist die Verwendung bereits existierender Hardware, im speziellen Grafikkarte(n). Motivation für diesen Ansatz sind die doch recht hohen Anschaffungskosten (aktuell um 300 €) einer PPU. Die beiden großen Grafikchip-Hersteller ATI und NVIDIA präsentierten bereits in dieser Weise nutzbare Systeme.
NVIDIA baut dabei auf der bekannten Havok-Engine auf. Voraussetzung für die Nutzung der Havok FX genannten Technik ist eine Shader-Model 3.0 fähige Grafikkarte, welche dann für die Berechnung (neben der realistische Darstellung) von z. B. Rauch und Flüssigkeiten zuständig ist. SLI-Systeme sollen ab der 90er Serie des Forceware-Treibers Unterstützung eines weiteren Modus erhalten. Bei SLI Physics übernimmt eine der beiden installierten Grafikkarten die Physikberechnungen, die andere die Berechnungen zur Bildsynthese.
ATI's Gegenstück, CrossFire Physics genannt, setzt dabei auf mehrere Grafikkarten. Im Unterschied zu NVIDIA können so bis zu drei GPUs in einem System arbeiten. Zwei Grafikkarten übernehmen die Bild-, eine dritte die Physikberechnungen. Den bei NVIDIA SLI Physics genannten Modus unterstützt ein System mit zwei CrossFire GPUs ebenfalls. Mit Einführung des Chipsatzes nForce 680i bietet auch NVIDIA die Möglichkeit an, eine dritte Grafikkarte für die Physikberechnungen verwenden zu können.
Der große Vorteil von GPUs gegenüber CPUs ist die hohe erreichbare Parallelisierbarkeit der Berechnungen. Zwar wurde in den vergangenen Jahren durch Architekturoptimierung und Befehlssatzerweiterung (siehe z. B. SSE) im Bereich der Hauptprozessoren viel getan – die Leistungsfähigkeit moderner GPUs erreichen diese bei weitem nicht. Zum Vergleich: aktuelle CPUs weisen etwa 10 GFLOPS auf; GPUs erreichen einige 100 GFLOPS. Das entspricht einem Unterschied von einer Größenordnung.
Weiterhin beinhaltet die Architektur einer GPU bereits vorsortierende und somit durchsatzschonende Elemente (z. B. Z-Buffer), die bei der Reduzierung des erforderlichen Aufwandes helfen. Eben diese Elemente werden bei ähnlich strukturierten Berechnungen wieder verwendet (z. B. Kollisionserkennung).
Physikberechnungen auf GPUs nutzen ein Debris Primitive bezeichnetes Starkörperelement, welchen mithilfe des Shader-Modells 3.0 effizient implementiert werden kann. Diese Einheiten sind entweder bereits vorhandene Teile der Szenerie (z. B. statische Mauer) oder werden bei Bedarf dynamisch erzeugt (z. B. umherfliegende Projektile). So werden beispielsweise im Fall der Kollisionserkennung die beiden Primitive Mauer und Projektil analysiert.