Physikbeschleuniger
# Physikbeschleuniger

Ein Physikbeschleuniger (kurz PPU für englisch: Physics Processing Unit) war ein spezieller Typ Koprozessor zur eigenständigen Berechnung vorrangig physikalischer Effekte. Analog der Nutzung eines Grafikprozessors (GPU) sollte die Verwendung einer PPU den Hauptprozessor (CPU) eines Computers entlasten.

Physik-Engines spielen in modernen Computerspielen eine wichtige Rolle zur Simulation einer realistischen Umwelt. Es ist deshalb naheliegend, häufig vorkommende, ähnlich strukturierte Berechnungen wie die Kollision zweier Körper an einen dafür optimierten Koprozessor auszulagern. Mit Hilfe eines Physikbeschleunigers war es möglich, physikalische Effekte schneller als auf einem Hauptprozessor zu berechnen oder zumindest von diesem auszulagern, was genauere und umfangreichere Berechnungen erlaubte und/oder den Hauptprozessor entlastete, damit jenem mehr Rechenzeit für andere Aufgaben, beispielsweise zur Berechnung der Künstlichen Intelligenz, zur Verfügung stand.

Der erste kommerziell erhältliche Physikbeschleuniger namens PhysX der Firma Ageia wurde im März 2005 auf der Game Developers Conference in San Jose vorgestellt. Dieser unterstützte die Simulation von Kleidung, Haaren, Festkörpern sowie Flüssigkeiten, konnte aber auch für Kollisionserkennung und -berechnung verwendet werden. Mittlerweile sind alle verbreiteten Physik-Engines entweder GPU-basiert oder reine Software-Lösungen (auf dem Hauptprozessor rechnend).

## Software

Um die Funktionalität eines Physikbeschleunigers nutzen zu können, musste die bei einem Computerspiel verwendete Physik-Engine diesen unterstützen. Die Physik-Engine bildete somit die Schnittstelle zwischen Anwendung (z. B. Computerspiel) und Hardware, indem sie der Anwendung die Schnittstellen der PPU zur Verfügung stellte. Eine Physik-Engine lief meist auch ohne Physikbeschleuniger, profitierte jedoch vom Vorhandensein eines solchen.

## Produkte

Die ersten Erweiterungskarten mit PCI-Schnittstelle wurden ab 2006 verkauft. Hersteller von PPUs war Ageia. Dedizierte Chips oder integrierte IP-Cores wurden mitunter in Grafikkarten von BFG und Asus ab Mai 2006 vertrieben. Sie hielten sich an das Referenzdesign von Ageia. Ageia wurde 2008 von NVIDIA aufgekauft. Ab der 8000er-Serie ist auf deren Grafikkarten PhysX integriert. Manche Komplett-PCs wurden mitsamt Grafikkarten von BFG mit Physikbeschleuniger verkauft.

## Grafikkarten als Physikbeschleuniger

Alternativen zu einer eigenständigen PPU sind durch die relativ hohen Anschaffungskosten von derzeit wenigstens 80 € (Stand 2008) motiviert.

Bei der allgemeiner als GPGPU (für General Purpose Computation on GPU) bezeichneten Vorgehensweise werden geeignete Grafikprozessoren für rechenintensive Aufgaben jenseits der eigentlichen Grafikalgorithmen genutzt. Speziell zur Physikbeschleunigung haben die beiden großen Grafikchip-Hersteller ATI und Nvidia bereits Systeme und entsprechende Schnittstellen entwickelt und präsentiert.

* NVIDIA baut auf der PhysX-Engine auf. Voraussetzung für die Nutzung der PhysX genannten Technik ist eine Grafikkarte der 8800-Reihe oder höher. Neben den Berechnungen für die realistische Darstellung laufen dann beispielsweise Simulationen für Rauch und Flüssigkeiten auf dem Grafikprozessor. SLI-Systeme sollen ab der 1990er-Serie des Forceware-Treibers Unterstützung einen weiteren Modus erhalten. Bei SLI Physics übernimmt eine der beiden installierten Grafikkarten die Physikberechnungen, die andere die Berechnungen zur Bildsynthese. Mit Einführung des Chipsatzes nForce 680i bietet NVIDIA die Möglichkeit, eine dritte Grafikkarte für die Physikberechnungen verwenden zu können.
* ATI kündigte im Juni 2006 CrossFire Physics an, das bis zu drei GPUs separater Grafikkarten nutzt. Dabei übernehmen eine oder zwei GPUs die Bild-, eine zusätzliche GPU die Physikberechnungen. Den bei NVIDIA SLI Physics genannten Modus unterstützt ein System mit zwei CrossFire GPUs ebenfalls.

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 wie SSE im Bereich der Hauptprozessoren viel getan – die Leistungsfähigkeit moderner GPUs erreichen diese trotzdem bei weitem nicht.

Weiterhin beinhaltet die Architektur einer GPU bereits vorsortierende und somit durchsatzschonende Elemente (z. B. Z-Buffer), die bei der Reduzierung des erforderlichen Aufwandes helfen. Ebendiese Elemente werden bei ähnlich strukturierten Berechnungen wiederverwendet (z. B. Kollisionserkennung).

Physikberechnungen auf GPUs nutzen ein als Debris Primitive bezeichnetes Starrkörperelement, welches 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.

Im Sommer 2008 wurde durch NVIDIA erstmals ein Forceware-Treiber veröffentlicht, der es ermöglichte, die PhysX-Effekte von der GPU rendern zu lassen. Voraussetzung dafür sind Karten mit Shader-Modell 4, also ab der Geforce 8000-Reihe. Man kann PhysX auf einer separaten Karte bei SLI-Systemen, auf der zweiten GPU bei Dual-GPU-Karten oder auf einer einzigen Karte mit Grafik berechnen lassen, wobei dann nur freie Shader benutzt werden, um die Grafikleistung nicht zu stark zu beeinflussen.

