Sind GPUs "in-hardware" dafür ausgelegt, Grafik zu berechnen?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Größtenteils ist die Antwort nein, sie ist nicht direkt auf Grafik spezialisiert. Natürlich gibt es gewisse Features, die gewisse Grafikoperationen in Hardware umsetzen.

Wie schon erwähnt sind GPUs gut in Parallelisierung. Es gibt sehr große Unterschiede im Aufbau der Caches und wofür diese optimiert sind, im Vergleich zu einer herkömmlichen CPU.

Zurück zur Grafik: GPUs können grundlegende Arithmetik sowie auch floating point operations. Durch Parallelisierung kann, je nach Anwendung jeder Pixel auf dem Bildschirm "gleichzeitig" berechnet werden.

GPUs haben aber tatsächlich auch Hardware Features, die sich insbesondere für Grafik lohnen.

Beispielerweise texture Caches, die für Lokalität auf 2D, bzw. 3D Daten optimiert sind. Da geht es in erster Linie um einen schnelleren Zugriff nachdem etwas in den Cache geladen wurde. Beispielerweise die Pixel direkt neben einem Pixel den man sich gerade angeschaut hat (Das können herkömmliche Caches nicht immer leisten, da diese die Daten i. d. R. nur eindimensional betrachten)

Schon seit etwa 2010 konnten hochparallelisierte mit teilprogammisierbaren Function-Units bereits auch für andere Aufgaben als reines Rendering eingesetzt werden.

Seit diesem Stichpunkt in etwa bekamen "GPUs" auch ernsthaft zumünehmend jährlich neu immer mehr und massiver nützlich arbeitende Videocoding-Spezialfunktionseinheiten Inchip.

Die ersten uneinheitlichen Grundkafügen liegen dabei sogar noch weit vor 2010 in der Entwicklung, aber Nvidia brachte mit seinem "Tesla' - Chip in Bekanntheit ab GeForce 8000 - Series die ersten brauchbaren Unified-Programmables Function-Units ( für die hauseigene CUDA - Schnittstelle ) nebst bereits vorhandener Video-Coding Spezialeinheiten.

Rudimentär heherrschten das per Spezial-Units zwar auch AMD / ATI Radeons, aber da nur über Open CL /Brook oder hauseigene Tools zur Videobeschleunigung.

Videobeschleunigung für De- / und Encoding gab es selbst DAVOR bereits in Hardware, aber da kochte weitgehend jeder Hersteller per Zusatzschip zur Prozessorentlastung für Videodecoding z.B. bei MPeg noch komplett sein eigenes Süppchen.

Letzteres nahm prozessorentlastend ansonsten schon mit Pentium I seine ergänzenden Anfänge in speziellen Videobeschleunigerkarten.

Die Architektur eines GPU Prozessors ist anders als die einer CPU. Sie ist speziell dafür ausgelegt, eine große Menge an ähnlichen Berechnungen schnell durchzuführen (parallel). Eine CPU ist dafür flexibler und kann schnell zwischen verschiedenen Anweisungen hin und her wechseln und immer eine Aufgabe schnell und effizient lösen