Grafikprozessor
Der Grafikprozessor (englisch Graphics Processing Unit – GPU, seltener Visual Processing Unit – VPU[1]) dient zur Berechnung der Bildschirmausgabe auf Computern und Spielekonsolen. Dieser befindet sich entweder auf der Hauptplatine (Onboard, als Integrated Graphics Processor) oder auf einer Erweiterungskarte (Steckkarte), im letzteren Fall sind auch mehrere GPUs auf einer Grafikkarte möglich.
Fast alle heute produzierten Grafikprozessoren stammen von AMD (unter dem Markennamen ATI), Intel und Nvidia. Die Integration auf Steckkarten liegt dagegen bis auf Sondermodelle seit einiger Zeit bei anderen Herstellern.
Inhaltsverzeichnis |
Geschichte
Im Prinzip gibt es Grafikprozessoren seit etwa Anfang der 1980er Jahre. Damals dienten sie allerdings nur als Bindeglied zwischen der CPU und der Bildschirmausgabe. Weder hatten sie die Funktionalität, noch waren sie für eigenständige Berechnungen ausgelegt. Zunächst waren sie vor allem für eine selbständige Text- und Grafikausgabe zuständig und schonten damit den Systembus. Einige konnten sogar Sprites darstellen.
Das änderte sich Mitte der 1980er Jahre mit Rechnern wie dem Commodore Amiga oder dem Atari ST. Diese verfügten bereits über Blitting-Funktionen. Im x86-PC-Bereich kamen Grafikprozessoren mit solchen Zusatzfunktionen mit dem Übergang von textbasieren DOS-Programmen zu grafikbasierten Windows-Programmen auf. Entsprechend „Windows-Beschleuniger“ genannt, konnten sie einfache Befehle (z. B. „zeichne Viereck“) selbständig abarbeiten.
Mitte der 1990er Jahre kamen die ersten 3D-Beschleuniger auf den Markt. Diese Grafikprozessoren waren in der Lage, einige Effekte und dreiecksbasierte Algorithmen (wie u. a. Z-Puffern, Texture Mapping) und Antialiasing auszuführen. Besonders dem Bereich Computerspiele verhalfen solche Steckkarten (z. B. 3dfx Voodoo Graphics) zu einem Entwicklungsschub. Zur damaligen Zeit waren solche Anwendungen vorrangig durch den Prozessor begrenzt.
Die Bezeichnung GPU wurde erstmals von Nvidia intensiv genutzt, um die 1999 erschienene Geforce 256 zu vermarkten. Diese Grafikkarte war (im Endkunden-Geschäft) als erste mit einer T&L-Einheit ausgestattet.
GPUs waren wegen ihrer Spezialisierung auf Grafikberechnungen den CPUs in ihrer Rechenleistung stets überlegen. Inzwischen werden die GPUs immer flexibler, aufgrund der Konzentration auf massiv parallelisierbare Aufgaben aber weiterhin in ihrer Rohleistung stärker. Als Vergleich diene die Transistoranzahl des aktuellen Grafikprozessors von AMD (Radeon HD 5870, 2154 Millionen) mit der des aktuellen Spitzenmodells von Intel (Intel Core i7-975 Extreme Edition, 731 Millionen). Der Unterschied wird deutlich, wenn man bedenkt, dass über ein Drittel der CPU-Chipfläche für die 8 MByte L3-Cache und 1 MByte L2-Cache verbraucht werden. Die Entwicklung der Integrationsdichte der Grafikprozessoren hat mit einem jährlichen Faktor von 2,4 sogar das Mooresche Gesetz übertroffen.
Eine CPU kann prinzipiell alles berechnen und ist dementsprechend universell ausgelegt, während GPUs auf 3D-Berechnungen und massiv parallelisierbare Rechenaufgaben spezialisiert und optimiert sind. Die GPU zeichnet sich durch ein hohes Maß an Parallelisierung aus, da sich 3D-Berechnungen sehr gut parallelisieren lassen können. Ließe man auf einer GPU ein Programm laufen, das nur ein bis zwei Threads (aktuell übliches Programm) gleichzeitig zur Verfügung stellt, so wäre die GPU nicht ausgelastet und dementsprechend langsam.
Der Leistungsvorsprung gegenüber CPUs und die bereits vorhandenen SIMD-Eigenschaften machen aktuelle GPUs für wissenschaftliche Anwendungen als Streamprozessor interessant. Diesen Verwendungszweck bezeichnet man als GPGPU. Die Einbeziehung der GPU hat z. B. im Verteilt-Rechnen-Projekt Folding@home zu einer enormen Steigerung der Rechenleistung geführt. Sie beschränkte sich zunächst auf die Chips des Herstellers ATI/AMD, im Jahr 2008 kam aber auch Nvidia-GPUs ab der GeForce-8-Serie hinzu. Für Grafikkarten von Nvidia existiert CUDA als API zur Nutzung der GPU für Berechnungen. Diese wird inzwischen auch genutzt, um in Spielen mittels PhysX Physikberechnungen durchzuführen. Inzwischen gibt es aber auch die offene Programmierplattform OpenCL, mit der man Programme für CPU und GPU gleichermaßen entwickeln kann. Zudem können heutige GPUs nicht nur mit einfacher Genauigkeit, sondern auch mit doppelter Genauigkeit rechnen.
Aufgaben
Der Grafikprozessor übernimmt rechenintensive Aufgaben der 2D- und 3D-Computergrafik und entlastet dadurch den Hauptprozessor (CPU). Die Funktionen werden über Softwarebibliotheken wie DirectX oder OpenGL angesteuert. Die freigewordene Prozessorzeit kann somit für andere Aufgaben verwendet werden.
Eigenschaften
- Unterstützung der Grafikschnittstellen DirectX und OpenGL
- Antialiasing (zum Teil winkelunabhängige Kantenglättung)
- Anisotropes Filtern (Schärfentiefe von Texturen)
- Multi-GPU-Techniken (Zusammenarbeit mehrerer Grafikprozessoren)
- freie Programmierbarkeit nahezu jeder GPU-Komponente (u. a. Shader, beinhaltet T&L)
Stromverbrauch
Nachdem die großen Hersteller von CPUs seit etwa Anfang 2005 begonnen haben, den Stromverbrauch ihrer Produkte insbesondere bei geringer Auslastung teilweise sehr deutlich zu reduzieren, entstand in dieser Hinsicht ein Druck auf die Hersteller von Grafikprozessoren, die bisher jedoch eher das Gegenteil taten: Highend-Grafikkarten wandeln nicht selten selbst ohne Last mehr als 50 W in Verlustwärme um[2], obwohl es in diesem Zustand praktisch keine Leistungsunterschiede zu wesentlich einfacheren Modellen oder Onboard-Grafik gibt. Ende des Jahres 2007 fügte AMD mit der ATI-Radeon-HD-3000-Serie erstmals effiziente Stromsparmechanismen in seine Desktopgrafikkarten ein. Nvidia entwickelte das Verfahren HybridPower, das es erlaubte, eine High-End-Grafikkarte im 2D-Modus auszuschalten und auf den sparsamen Onboard-Grafikchip umzuschalten, wofür allerdings eine Hybrid-SLI-fähige Hauptplatine Voraussetzung war. Nach relativ kurzer Zeit verabschiede sich nVidia aber von diesem Konzept. Inzwischen (2009) beherrschen die GPUs beider Hersteller relativ effiziente Stromsparmechanismen.
Hersteller
Aktuell
ATI (Markenname von AMD), Intel, Matrox, Nvidia, PowerVR, S3 Graphics, XGI Technology Inc.
Ehemalig
3dfx, 3DLabs, Cyrix, Diamond Multimedia, Oak Technologies, S3 Inc., SiS, Trident Microsystems, Tseng Labs
Aufgrund des starken Wettbewerbs und der damit verbundenen hohen Entwicklungskosten wurden die meisten Hersteller aufgekauft (3dfx, 3DLabs) oder konzentrieren sich auf einen Nischenmarkt (Matrox, XGI).
Seit Jahren ist Intel mit Abstand Marktführer bei Grafikprozessoren. Der Hauptgrund ist die hohe Anzahl von Büro-Computern, die fast nur mit auf der Hauptplatine integrierten Grafikprozessoren ausgestattet sind, die einen Bestandteil der überwiegend von Intel gelieferten Chipsätze darstellen. Im für PC-Spieler geeigneteren Bereich der steckkartenbasierten Grafiklösungen teilen sich AMD/ATI und Nvidia den Markt.