Grafikkarte mal anders: Das leisten Nvidia CUDA und PhysX heutzutage

Wolfgang Andermahr
162 Kommentare
Grafikkarte mal anders: Das leisten Nvidia CUDA und PhysX heutzutage

Einleitung

Was kann eine Grafikkarte eigentlich alles so machen? Auf den ersten Blick mag das eine merkwürdige Frage sein, denn eigentlich sagt ja schon das Wort, was das Stück Hardware im Kern berechnen musste und muss: Grafik. Die Grafik vom Windows-Desktop, die Grafik einer 3D-Anwendung wie einem Spiel oder aber auch die grafischen Echtzeitberechnungen in einer professionellen Anwendung wie zum Beispiel einem Renderprogramm. Richtig, das alles sind die Hauptaufgaben einer Grafikkarte und werden es für eine lange Zeit auch noch bleiben.

Mit den Jahren hat die GPU (Graphics Processing Unit) aber viele Schritte nach vorne gemacht. Während sämtliche Einheiten zu Beginn der Grafikkarte noch fest verdrahtet und so die Aufgaben bereits vorgegeben waren (eine so genannte Fixed-Function-Pipeline), gab es mit der Einführung der Direct3D-8-API und der damit verbundenen Hardware erstmals eine programmierbare Einheit, die Shader-Units, mit denen es möglich war, kleine, limitierte, selbst geschriebene Programme ausführen zu lassen. Anfangs noch eingeschränkt flexibel, wurden die Shadereinheiten immer mächtiger.

Mit der Direct3D-9-Hardware und dem Shader-Model 2 sowie dessen Nachfolger SM3 wurden die Möglichkeiten immer größer und spätestens seit den Direct3D-10-Karten sind Grafikkarten längst keine reinen Grafikprozessoren mehr. Denn mit parallel aufgebauten Programmen hat selbst eine High-End-CPU mit mehreren Kernen so ihre Schwierigkeiten, während eine GPU die Aufgaben im Schlaf erledigen kann (nichtsdestotrotz kann eine GPU eine CPU nicht ersetzen und wird es wohl auch nie tun). Sowohl ATi als auch Nvidia haben die Zeichen der Zeit erkannt und bieten dem Software-Entwickler neuerdings Techniken an, mit denen man Programme abseits der 3D-Grafik auf der Grafikkarte laufen lassen kann.

GPGPU, GPU-Computing, CUDA, PhysX und CAL sind die Zauberworte des Artikels, die einige generelle und einige an einen Hersteller angelehnte Möglichkeiten beschreiben, einen 3D-Beschleuniger für die parallele Datenberechnungen zu verwenden.

Wir möchten einen kleinen Einblick in die derzeitigen und zukünftigen Mainstream-Programme für eine GPU geben. Willkommen in der Welt der 3D-Grafikhardware – heute (weitestgehend) ohne 3D-Grafik!