Physikbeschleuniger

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

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

Physik-Engines spielen in modernen Computerspielen eine wichtige Rolle zur Vermittlung einer realistischen Umwelt. Es ist deshalb naheliegend, häufig vorkommende, ähnlich strukturierte Berechnungen wie die Kollision zweier Körper an einen dafür optimierten Prozessor auszulagern. Mit Hilfe eines Physikbeschleunigers ist es möglich, physikalische Effekte genauer, umfangreicher und vor allem schneller als auf einem Hauptprozessor zu berechnen. Dies entlastet den Hauptprozessor, dem dann mehr Rechenzeit für andere Aufgaben, beispielsweise zur Berechnung der Künstlichen Intelligenz, zur Verfügung steht.

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ützt die Simulation von Kleidung, Haaren, Festkörpern sowie Flüssigkeiten, kann aber auch für Kollisionserkennung und -berechnung verwendet werden.

Software[Bearbeiten]

Um die Funktionalität eines Physikbeschleunigers nutzen zu können, muss die bei einem Computerspiel verwendete Physikengine diesen unterstützen. Die Physikengine bildet somit die Schnittstelle zwischen Anwendung (z. B. Computerspiel) und Hardware, indem sie der Anwendung die Schnittstellen der PPU zur Verfügung stellt. Im Fall von PhysX wurde dafür eigens die PhysX API (vormals NovodeX) entwickelt. Eine Physikengine läuft auch ohne Physikbeschleuniger, profitiert jedoch vom Vorhandensein eines solchen.

PPUs werden auch in Konsolen verbaut: 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[Bearbeiten]

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 Grafikkartenhersteller BFG und Asus vertreiben seit ca. Mitte Mai 2006 ihre Erweiterungskarten mit PhysX-PPU. Die zwischen 180 und 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. Ageia wurde von NVIDIA aufgekauft. Ab der 8000er-Serie ist auf der Karte PhysX enthalten. In den Komplettsystemen von Alienware, Dell und Falcon Northwest wurden dagegen schon eher die Physikbeschleuniger von BFG integriert.

Grafikkarten als Physikbeschleuniger[Bearbeiten]

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 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. 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.[1]

Dabei übernehmen eine oder zwei GPUs die Bild-, eine zusätzliche GPU die Physikberechnungen.[2] 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 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 eine Forceware Treiberversion veröffentlicht, die 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, wobei dann nur freie Shader benutzt werden, um die Grafikleistung nicht zu stark zu beeinflussen, berechnen lassen.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. ATI CrossFire™ Introduces 'Boundless Gaming' to the World. – ATI-Pressemitteilung, 6. Juni 2006. (englisch)
  2. Asymmetric Physics Processing with ATI CrossFire. Whitepaper, ati.com, 2006. (PDF, englisch)