Worum geht es hier?
Dieser Thread dient allgemein als Diskussionsplattform über das Thema GPGPU. Sowohl die Softwaresicht als auch die Hardwaresicht können hier diskutiert werden.
Was ist GPGPU eigentlich?
GPGPU (General Purpose Computation on Graphics Processing Unit) bezeichnet die Verwendung eines Grafikprozessors (GPU) für Rechenaufgaben zusätzlich zu seinem eigentlichen Aufgabengebiet.
Derartige Aufgaben treten in Zukunft vermehrt auf um die Berechnungen zu beschleunigen.
Die Anfänge von GPGPU:
Angefangen hat wohl alles um das Jahr 2000. Erste GPUs mit programmierbarer Grafikpipeline erblickten das Licht der Welt und wurden dazu "missbraucht" auch andere Aufgaben zu bewältigen als 3D Szenen auf den Schirm zu zaubern.
Populär wurde GPGPU aber spätestens seit dem G80 (8800GTS/GTX) von NVidia... Dies waren die ersten GPUs mit Unified Shadern.
AMD brachte später mit dem R600 (2900XT) ebenfalls eine Karte raus, die über frei programmierbare Shadereinheiten verfügt.
GPGPU aus Hardwaresicht:
Zuerst einmal gibt es grundlegend zum aktuellen Zeitpunkt zwei Unterschiede zwischen den beiden großen GPU Herstellern (AMD und NVidia)
NVidia setzt bei ihren GPUs auf 1D ALUs, dafür aber mehr einzelne Einheiten die höher takten als der direkte Konkurrent. AMD hingegen auf 5D ALUs, dafür in der Regel weniger in der Anzahl und geringer getaktet.
In der Theorie betrachtet können AMD GPUs teils deutlich mehr Leistung entfalten als die Konkurrenzprodukte. Es kommt aber praxisbezogen stark auf die Anwendung an, ob AMDs 5D Shader ihre volle Stärke ausspielen können.
Da es im Homecomputerbereich in der Regel nur Karten mit recht geringem Grafikspeicher gibt, findet man bei beiden Herstellern auch speziell auf GPGPU ausgelegte Karten. Zu nennen wäre hier die Tesla Reihe von NVidia sowie die FireStream Produkte von AMD. Beide Hersteller verbauen bei diesen Karten mehr Grafikspeicher und bringen spezielle Treiber für die Produkte.
GPGPU aus Softwaresicht:
Im Moment kochen beide Hersteller noch ihr eigenes Süppchen wenn es um Software geht. Zu nennen wäre hier NVidias Cuda sowie Stream von AMD.
Beides sind quasi Standards bezogen auf die jeweilige Hardware des Herstellers.
Aber auch der OpenSource bzw. herstellerunabhängige Softwaremarkt hat hier Produkte im Angebot.
Allen voran OpenCL sowie DirectX Compute Shader von Microsoft.
Es ist davon auszugehen, dass die Herstellerspezifischen Schnittstellen früher oder später nahezu vollständig von offenen- und herstellerungebundenen Standards abgelöst werden. Einfach aus dem Grund, dass es keine Beschränkung auf spezielle Hardware mehr gibt. Ob man für NVidia-/AMD- eigene Projekte auch auf diese offenen Standards aufsetzt, bleibt abzuwarten.
Im allgemeinen sind erstmal alle Produkte die DX10 können auch GPGPU tauglich. Zumindest was NVidia und AMD Produkte angeht.
Zu unterscheiden ist ebenso die Berechnung an sich. Hauptaugenmerk liegt dabei auf der einfachen Genauigkeit (SP), sowie der doppelten Genauigkeit (DP)
Bei NVidias 1D ALUs rechnen bei SP alle Einheiten jeweils einen Wert, bei DP hingegen müssen immer zwei Einheiten zusammengefasst werden um die doppelte Genauigkeit zu bekommen.
Bei AMD gibt es die Möglichkeit durch unabhängige Werte voneinander alle 5D Einheiten vollständig auszulasten (SP). DP hingegen verlangt das Zusammenschalten der Einheiten. So steht bei DP nur 1/5 der Leistung von SP zur Verfügung.
Derzeit verfügbare Software:
Es gibt immer mehr Programme, die sich mit Hilfe einer GPGPU beschleunigen lassen. Einiges bieten die GPU-Hersteller sogar selbst an um ihre Produkte zu etablieren.
Zu nennen wäre da zum Beispiel Badaboom von NVidia.
http://www.nvidia.de/object/badaboom_de.html
Ein Tool zum konvertieren von Video Files direkt auf der GPU. Was im Vergleich zur Berechnung auf der CPU erheblich weniger Zeit bracht.
Auch AMD bietet mit dem AVIVO Converter ein ähnliches Produkt speziell für AMD GPUs an.
http://ati.amd.com/technology/avivo/technology.html
Aber auch andere Software lässt nicht auf sich warten. So bietet Cyberlink in ihren Produkten sowohl Cuda als auch Stream Support. Ebenso gibt es Adobes Photoshop mit Features zur Performancesteigerung durch GPGPU.
F@H als Software für Distributed Computing hat ebenso einen Client für aktuelle GPUs.
Benchmarksoftware im Bereich GPGPU könnte man zum Beispiel dieses Tool nennen.
Es besitzt auch eine ausgezeichnete Unterstützung für AMDs 5D Einheiten, was im allgemeinen bei einiger Software ein Problem ist und AMDs Karten teils recht schlechte Werte ausspucken lässt.
Schlusswort:
So gut, das soll's erstmal von mir gewesen sein. Ich erwarte hier eine Sachliche Diskussion. Gespame, Geflame oder sonstige Anfeindungen usw. sowie Missachtung der Forenregeln haben hier nichts zu suchen.
Auch soll hier kein Kleinkrieg zwischen NVidia und AMD Anhängern entstehen.
In diesem Sinne...
Fröhliches Diskutieren
Zuletzt bearbeitet: