Grafikkarte als Supercomputer
Superrechner Grafikkarte

KomponentenWorkspace

Aktuelle Grafikchips hängen selbst die leistungsfähigsten Prozessoren ab, wenn es um Floating-Point-Performance geht. Supercomputer auf Basis von 3D-Grafikkarten sind keine Utopie mehr.

Sehr hohe Rechenleistung

Grafikkarte als Supercomputer

Das neue Schlagwort bei Grafikkarten heißt GPGPU. Dahinter steckt der Begriff General Purpose Computation on Graphics Processing Units – die Berechnungen universeller Rechenaufgaben mithilfe von Grafikhardware. Statt sich nur um die Darstellung von 2D- und 3D-Bildern auf dem PC-Monitor zu kümmern, berechnen die neuesten Grafikchips (GPUs) auch physikalische Effekte in 3D-Spielen, rendern für Filmstudios die Special Effects oder übernehmen komplexe wissenschaftliche und technische Berechnungen in Rekordzeit.

Das Entscheidende dabei: Die Floating-Point-Rechenleistung der aktuellen Highend-Grafikkarten ist im Idealfall bis zu 40-mal höher als die der derzeit schnellsten Prozessoren. Die hohe Rechenleistung lässt sich zukünftig mit speziell ausgelegten Grafiktreibern für Berechnungen in Medizin, Chemie, Physik und Wirtschaft nutzen.

Bild: In der reinen Floating-Point-Rechenleistung sind die aktuellen Grafikchips selbst gegenüber den schnellsten Prozessoren klar im Vorteil


Erste Anwendung

Grafikkarte als Supercomputer

ATI zeigt ganz aktuell eine erste Anwendung für GPGPU-Berechnungen: Beim Folding@home-Projekt des Fachbereichs Chemie der Stanford University geht es darum, die Faltung von Molekülen zu simulieren und daraus Rückschlüsse auf die Entstehung von Erkrankungen wie der Alzheimer oder Parkinsonschen Krankheit, Krebs oder BSE zu ziehen.
Die Berechnungen werden dabei per Distributed Computing auf beliebig viele PC-Systeme weltweit aufgeteilt. Jeder Interessierte kann über das Internet Rechenzeit auf seinem PC zur Verfügung stellen. ATI hat jetzt einen speziellen Grafikkartentreiber entwickelt, bei dem die Berechnungen nicht mehr vom Prozessor, sondern erheblich schneller von der Grafikkarte ausgeführt werden können. Ein PC mit zwei Radeon-X1900-XT-Grafikkarten erzielt dabei in etwa diegleiche Rechenleistung wie ein PC-Cluster aus fünfzehn Pentium-4-Systemen.

Entscheidend für die hohe Leistung der Berechnungen auf einem Grafikchip ist der unterschiedliche Ansatz bei der Auslegung der Recheneinheiten: Prozessoren sind darauf ausgelegt, komplexe Befehle schnell zu bearbeiten. Das erledigen sie mit entsprechend langen Verarbeitungspipelines. Lässt sich eine Aufgabe jedoch auf einfache Algorithmen herunterbrechen, ist die aufwändige Architektur der CPUs unterfordert und arbeitet ineffizient.

Bei Grafikchips ist die Architektur der Recheneinheiten weniger aufwändig ausgelegt, einfache Aufgaben lassen sich damit effizienter und schneller berechnen. Zudem sind die Recheneinheiten bei den Grafikchips parallel ausgelegt: Bis zu 48 Rendering-Einheiten arbeiten bei Chips wie solchen aus der ATI-Radeon-X1900- oder Nvidia-Geforce-7900-Reihe nebeneinander. Bei Rechenaufgaben, die eine Parallelisierung der Berechnung zulassen, können von nur einem Grafikchip entsprechend bis zu 48 Berechnungen zur gleichen Zeit abgearbeitet werden. Mit der Crossfire- oder SLI-Technik stellen die Grafikchiphersteller zudem die Möglichkeit bereit, zwei oder sogar mehr Grafikchips in einem Computer-System nebeneinander zu nutzen. Die Rechenleistung vervielfacht sich entsprechend.

Bild: ATI lässt die Folding@home-Applikation per Grafikkarte schneller rechnen


Voraussetzung Stream Computing

Grafikkarte als Supercomputer

Notwendige Grundlage für die hohe Leistungsfähigkeit der GPGPU-Technik ist das Stream Computing:Der Begriff steht für Systeme, bei denen die Rechenaufgaben auf eine große Zahl möglichst gleicher Einzelaufgaben aufgeteilt werden, die dann als aufeinander folgender Strom (Stream) von Aufträgen an die Recheneinheiten übergeben werden (SIMD, Single-Instruction, Multiple Data).

Eine entsprechende Anpassung der Software ist notwendig, hier sind also auch erst noch die Software-Hersteller gefordert. Eine Entwicklungsumgebung zur Programmierung von Stream-Anwendungen stellt beispielsweise die Firma Peakstream bereit.


Schnellere Physik

Grafikkarte als Supercomputer

Eine Anwendung der GPGPU-Technik hat das PCpro-Labor bereits erfolgreich demonstriert: Die Berechnung physikalischer Effekte in 3D-Software mithilfe einer ATI-Grafikkarte. Mit einem angepassten Treiber berechnet die Grafikkarte in virtuellen 3D-Welten beispielsweise die korrekte Kinematik von Objekten, die sich nach physikalischen Gesetzmäßigkeiten bewegen, etwa den freien Fall im Erdkraftfeld oder die Rückstoßreaktion, wenn zwei oder mehr Körper aufeinander prallen. Die Interaktion von 10 000 und mehr Objekten kann auf diese Weise realistisch und mit fließenden Bildraten berechnet werden.

Wird die Rechenaufgabe wie bisher alleine dem Prozessor überlassen, geraten die Bildfolgen massiv ins Stocken. Die Physik-Berechnungen eignen sich dabei ideal für das GPGPU-Konzept: Die Wechselwirkung zwischen den einzelnen Objekten lässt sich beinahe vollständig parallelisieren.

Die Grafiktreiber stellen die Funktionen zur Physikbeschleunigung über die Havok-FX-Schnittstelle bereit. Diese bietet den Entwicklern von 3D-Software und Spielen die Möglichkeit, die aufwändigen Effekte ohne großen Programmieraufwand in ihren Produkten zu integrieren. Die ersten offiziellen Grafiktreiber mit eingebauter Physikbeschleunigung sind Anfang 2007 zu erwarten, dann sollen auch die ersten 3D-Spiele wie »Alone in the Dark 4« oder »Hellgate – London« verfügbar sein, die davon Gebrauch machen.

Bild: Beispiel für Physik-Beschleunigung: Die Grafikkarte errechnet die Kinematik der umherfliegenden Mauersteine


Grafik-Superrechner

Grafikkarte als Supercomputer

Wie ein Grafik-Superrechner aussehen könnte, zeigt Nvidia schon heute: Unter der Bezeichnung Quadro Plex bringt Nvidia ganz neue Systeme auf den Markt, die dazu dienen, die Rechenleistung von Grafikkarten universell zu nutzen. Im Serverrack-tauglichen Gehäuse finden sich zwei bis vier Nvidia-Quadro-Grafikkarten und die passende Elektronik, um das System über ein Kabel mit PCI-Express-Stecker mit einem Hauptrechner zu verbinden. Indem zwei Quadro-Plex-Systeme an einem SLI-fähigen Hauptsystem mit zwei PCI-Express-x16-Slots angeschlossen werden, lässt sich eine Plattform mit bis zu acht Quadro-GPUs aufbauen. Mehrere Hauptsysteme (Nodes) lassen sich in einem Rechner-Cluster zusammenschließen, um die Rechenleistung weiter zu erhöhen. Die Preise für die Systeme fangen bei 17 500 Euro an.

Nvidia spricht bei der Quadro-Plex-Reihe von Visual-Computing-Systeme: Um diese für mehr als die Monitordarstellung zu nutzen, hält Nvidia schon seit längerem eine passende Software bereit: Gelato 2.0. Die Rendering-Software wird zum Berechnen von aufwändigen Animationen und Effekten – unter anderem bei Filmproduktionen – verwendet. Die Standardvariante der Gelato-Software ist auf der Nvidia-Homepage kostenlos erhältlich. Die Pro-Variante (1500 Dollar) bietet zusätzlich die Möglichkeit, im Netzwerk mehrere Grafiksysteme parallel an einer Aufgabe rechnen zu lassen.

Bild: Erster Grafik-Supercomputer: Im Nvidia-Quadro-Plex-System arbeiten bis zu vier Highend-Grafikkarten


Ab in die Zukunft

Grafikkarte als Supercomputer

Die GPGPU-Technik wird in den kommenden Jahren stark an Bedeutung gewinnen. Zugleich wird die Zahl passender Software-Anwendungen wachsen. Bereits jetzt lassen sich für GPGPU-Berechnungen alle Grafikkarten nutzen, die über programmie
rbare Vertex- und Pixelshader-Einheiten verfügen.

Die Programmierer können von den Shader-Einheiten dann ihren Code ausführen lassen. Voraussetzung sind Shader-Einheiten nach dem neuesten Shader Model 3.0 (DirectX 9.0c). Das bieten die Grafikkarten der ATI-Radeon-X1000- oder Nvidia-Geforce-6- und Geforce-7-Serie.