Grafikkarte - Graphics processing unit

Aus Wikipedia, der freien Enzyklopädie
Komponenten einer GPU

Eine Grafikverarbeitungseinheit ( GPU ) ist eine spezielle elektronische Schaltung, die zum schnellen Manipulieren und Ändern des Speichers entwickelt wurde , um die Erstellung von Bildern in einem Bildpuffer zu beschleunigen, der zur Ausgabe an ein Anzeigegerät vorgesehen ist . GPUs werden in eingebetteten Systemen , Mobiltelefonen , PCs , Workstations und Spielekonsolen verwendet . Moderne GPUs sind sehr effizient bei der Manipulation von Computergrafiken und Bildverarbeitung . Aufgrund ihrer hochparallelen Struktur sind sie effizienter als Allzweck- Zentraleinheiten (CPUs) für Algorithmen , die große Datenblöcke parallel verarbeiten. In einem Personal Computer kann eine GPU auf einer Grafikkarte vorhanden oder auf dem Motherboard eingebettet sein . In bestimmten CPUs sind sie in den CPU- Chip eingebettet .

In den 1970er Jahren stand der Begriff "GPU" ursprünglich für eine Grafikprozessoreinheit und beschrieb eine programmierbare Prozessoreinheit, die unabhängig von der CPU arbeitet und für die Grafikmanipulation und -ausgabe verantwortlich ist. Später, 1994, verwendete Sony den Begriff (der jetzt für Grafikprozessor steht ) in Bezug auf die von Toshiba entworfene Sony-GPU der PlayStation- Konsole im Jahr 1994. Der Begriff wurde 1999 von Nvidia populär gemacht , der die GeForce 256 als "weltweit erste" vermarktete GPU ". Es wurde als "Single-Chip- Prozessor mit integrierten Transformations-, Beleuchtungs-, Dreieck-Setup- / Clipping- und Rendering-Engines" vorgestellt. Rival ATI Technologies prägte den Begriff " Visual Processing Unit " oder VPU mit der Veröffentlichung der Radeon 9700 im Jahr 2002.

Geschichte

1970er Jahre

Arcade-Systemplatinen verwenden seit den 1970er Jahren spezielle Grafikschaltungen. In der frühen Videospielhardware war der RAM für Bildpuffer teuer, sodass Videochips Daten zusammensetzten, während die Anzeige auf dem Monitor gescannt wurde.

Eine spezielle Barrel-Shifter- Schaltung wurde verwendet, um der CPU zu helfen, die Framebuffer- Grafiken für verschiedene Arcade-Spiele der 1970er Jahre von Midway und Taito zu animieren , wie Gun Fight (1975), Sea Wolf (1976) und Space Invaders (1978). Das Arcade-System Namco Galaxian verwendete 1979 spezielle Grafikhardware, die RGB-Farben , mehrfarbige Sprites und Tilemap- Hintergründe unterstützt. Die galaxianische Hardware wurde im goldenen Zeitalter der Arcade-Videospiele von Spielefirmen wie Namco , Centuri , Gremlin , Irem , Konami , Midway , Nichibutsu , Sega und Taito häufig verwendet .

Atari ANTIC Mikroprozessor auf einem Atari 130XE Motherboard

Auf dem heimischen Markt verwendete der Atari 2600 1977 einen Video-Shifter namens Television Interface Adapter . Die 8-Bit-Computer von Atari (1979) verfügten über ANTIC , einen Videoprozessor, der Anweisungen interpretierte, die eine "Anzeigeliste" beschreiben - die Art und Weise, wie die Scanlinien bestimmten Bitmap- oder Zeichenmodi zugeordnet sind und wo der Speicher gespeichert ist (dies war also nicht erforderlich) ein zusammenhängender Bildspeicher sein). 6502- Maschinencode- Subroutinen könnten auf Abtastzeilen ausgelöst werden, indem ein Bit in einer Anzeigelistenanweisung gesetzt wird. ANTIC unterstützte auch ein reibungsloses vertikales und horizontales Scrollen unabhängig von der CPU.

1980er Jahre

NEC μPD7220 A.

Der NEC µPD7220 war die erste Implementierung eines PC-Grafikdisplay-Prozessors als einzelner LSI - Chip ( Large Scale Integration ) , der den Entwurf kostengünstiger, leistungsstarker Videografikkarten wie der von Number Nine Visual Technology ermöglichte . Es wurde bis Mitte der 1980er Jahre zur bekanntesten GPU. Es war die erste vollständig integrierte VLSI (very large-scale integration) Metall-Oxid-Halbleiter ( NMOS ) Grafikanzeigeprozessor für PCs, zu unterstützte bis 1024x1024 Auflösung , und die Grundlagen für den aufkommenden PC Grafikmarkt gelegt. Es wurde in einer Reihe von Grafikkarten verwendet und für Klone wie den Intel 82720 lizenziert, den ersten Grafikprozessor von Intel . Die 1982 veröffentlichten Arcade-Spiele Robotron 2084 , Joust , Sinistar und Bubbles von Williams Electronics enthalten benutzerdefinierte Blitter- Chips für den Betrieb mit 16-Farben-Bitmaps.

Im Jahr 1984 veröffentlichte Hitachi ARTC HD63484, den ersten großen CMOS -Grafikprozessor für PC. Der ARTC konnte im Monochrom- Modus eine Auflösung von bis zu 4K anzeigen und wurde in den späten 1980er Jahren in einer Reihe von PC-Grafikkarten und -Terminals verwendet. Im Jahr 1985 verfügte der Commodore Amiga über einen benutzerdefinierten Grafikchip mit einer Blitter-Einheit , die die Funktionen zur Bearbeitung von Bitmaps, zum Zeichnen von Linien und zum Füllen von Bereichen beschleunigte. Ebenfalls enthalten ist ein Coprozessor mit einem eigenen einfachen Befehlssatz, der Grafikhardware-Register synchron mit dem Videostrahl manipulieren kann (z. B. für Palettenschalter pro Scanline, Sprite-Multiplexing und Hardware-Fensterung) oder den Blitter ansteuert. 1986 veröffentlichte Texas Instruments den TMS34010 , den ersten voll programmierbaren Grafikprozessor. Es konnte Allzweckcode ausführen, hatte jedoch einen grafikorientierten Befehlssatz. In den Jahren 1990–1992 wurde dieser Chip zur Grundlage der Windows-Beschleunigerkarten der Texas Instruments Graphics Architecture ("TIGA") .

Der IBM 8514 Micro Channel-Adapter mit Speicher-Add-On.

1987 wurde das IBM 8514- Grafiksystem als eine der ersten Grafikkarten für IBM PC-kompatible Geräte veröffentlicht, die 2D-Grundelemente mit fester Funktion in elektronischer Hardware implementieren . Sharp ‚s X68000 , im Jahr 1987 veröffentlicht, verwendet ein eigenes Grafik - Chipsatz mit 65.536 Farbpalette und Hardware - Unterstützung für Sprites, Scrollen, und mehrere Spielfelder, schließlich als Entwicklungsmaschine für die Bedienung Capcom ‘ s CP - System Arcade - Board. Fujitsu konkurrierte später mit dem 1989 veröffentlichten FM Towns- Computer mit Unterstützung für eine vollständige Farbpalette von 16.777.216. 1988 wurden mit dem Namco System 21 und dem Taito Air System die ersten dedizierten polygonalen 3D- Grafikkarten in Spielhallen eingeführt .

VGA- Bereich auf dem Motherboard in IBM PS / 55

Der proprietäre VGA-Anzeigestandard ( Video Graphics Array ) von IBM wurde 1987 mit einer maximalen Auflösung von 640 × 480 Pixel eingeführt. Im November 1988 gab NEC Home Electronics die Gründung der Video Electronics Standards Association (VESA) bekannt, um einen Super VGA (SVGA) -Computer-Display-Standard als Nachfolger des IBM-eigenen VGA-Display-Standards zu entwickeln und zu fördern . Super VGA-fähige Grafikdisplay-Auflösungen von bis zu 800 × 600 Pixel , eine Steigerung von 36%.

1990er Jahre

Voodoo3 2000 AGP-Karte

1991 stellte S3 Graphics den S3 86C911 vor , den seine Designer nach dem Porsche 911 benannten, um die versprochene Leistungssteigerung anzuzeigen . Der 86C911 brachte eine Vielzahl von Nachahmern hervor: Bis 1995 hatten alle großen Hersteller von PC-Grafikchips ihren Chips Unterstützung für 2D- Beschleunigung hinzugefügt . Zu diesem Zeitpunkt hatten Windows-Beschleuniger mit fester Funktion teure Allzweck-Grafik-Coprozessoren in Bezug auf die Windows-Leistung übertroffen, und diese Coprozessoren verschwanden vom PC-Markt.

In den neunziger Jahren entwickelte sich die Beschleunigung der 2D- GUI weiter. Mit der Verbesserung der Fertigungskapazitäten verbesserte sich auch der Integrationsgrad der Grafikchips. Zusätzliche Anwendungsprogrammierschnittstellen (APIs) wurden für eine Vielzahl von Aufgaben bereitgestellt , z. B. die WinG- Grafikbibliothek von Microsoft für Windows 3.x und die spätere DirectDraw- Schnittstelle für die Hardwarebeschleunigung von 2D-Spielen unter Windows 95 und höher.

Anfang und Mitte der neunziger Jahre wurden Echtzeit- 3D-Grafiken in Arcade-, Computer- und Konsolenspielen immer häufiger eingesetzt, was zu einer steigenden öffentlichen Nachfrage nach hardwarebeschleunigter 3D-Grafik führte . Frühe Beispiele für 3D-Grafikhardware für den Massenmarkt finden sich in Arcade-Systemplatinen wie Sega Model 1 , Namco System 22 und Sega Model 2 sowie in Videospielkonsolen der fünften Generation wie Saturn , PlayStation und Nintendo 64 . Arcade-Systeme wie das Sega Model 2 und der Namco Magic Edge Hornet Simulator von 1993 waren Jahre vor dem Erscheinen in Consumer-Grafikkarten in der Lage, Hardware-T & L ( Transformation, Clipping und Beleuchtung ) durchzuführen. Einige Systeme verwendeten DSPs , um Transformationen zu beschleunigen. Fujitsu , der am Arcade-System Sega Model 2 arbeitete, begann 1995 mit der Integration von T & L in eine einzige LSI- Lösung für den Einsatz in Heimcomputern. die Fujitsu Pinolite, der erste 3D - Geometrieprozessor für Personal Computer, im Jahr 1997. Die erste Hardware-T & L GPU auf Freigabe Heimvideospielkonsolen wurde der Nintendo 64 ‚s Reality Coprozessor , 1997 im Jahr 1996 veröffentlicht, Mitsubishi veröffentlichte die 3Dpro / 2MP , eine voll funktionsfähige GPU für Transformation und Beleuchtung für Workstations und Windows NT- Desktops; ATi verwendete es für seine 1997 veröffentlichte FireGL 4000- Grafikkarte .

Der Begriff "GPU" wurde von Sony in Bezug auf die 32-Bit- Sony-GPU (von Toshiba entworfen ) in der 1994 veröffentlichten PlayStation- Videospielkonsole geprägt.

In der PC-Welt waren S3 ViRGE , ATI Rage und Matrox Mystique bemerkenswerte Fehlversuche bei kostengünstigen 3D-Grafikchips . Diese Chips waren im Wesentlichen 2D-Beschleuniger der vorherigen Generation mit angeschraubten 3D-Merkmalen. Viele waren sogar Pin-kompatibel mit den Chips der früheren Generation, um die Implementierung zu vereinfachen und die Kosten zu minimieren. Anfänglich waren leistungsfähige 3D-Grafiken nur mit diskreten Karten möglich, die der Beschleunigung von 3D-Funktionen gewidmet waren (und denen die 2D-GUI-Beschleunigung vollständig fehlte), wie PowerVR und 3dfx Voodoo . Mit fortschreitender Fertigungstechnologie wurden jedoch Video, 2D-GUI-Beschleunigung und 3D-Funktionalität in einem Chip integriert. Die Verite- Chipsätze von Rendition gehörten zu den ersten, die dies gut genug machten, um es wert zu sein, erwähnt zu werden. 1997 ging Rendition noch einen Schritt weiter und arbeitete mit Hercules und Fujitsu an einem "Thriller Conspiracy" -Projekt zusammen, bei dem ein Fujitsu FXG-1 Pinolite-Geometrieprozessor mit einem Vérité V2200-Kern kombiniert wurde, um Jahre vor Nvidias GeForce eine Grafikkarte mit einer vollständigen T & L-Engine zu erstellen 256 . Diese Karte, die die CPU des Systems entlasten soll, hat es nie auf den Markt gebracht.

OpenGL erschien in den frühen 90er Jahren als professionelle Grafik-API, litt jedoch ursprünglich unter Leistungsproblemen, die es der Glide-API ermöglichten , in den späten 90er Jahren einzugreifen und eine dominierende Kraft auf dem PC zu werden. Diese Probleme wurden jedoch schnell behoben und die Glide-API blieb auf der Strecke. Software-Implementierungen von OpenGL waren in dieser Zeit üblich, obwohl der Einfluss von OpenGL schließlich zu einer weit verbreiteten Hardware-Unterstützung führte. Im Laufe der Zeit ergab sich eine Parität zwischen den in der Hardware angebotenen und den in OpenGL angebotenen Funktionen. DirectX wurde in den späten 90ern unter Windows- Spieleentwicklern populär . Im Gegensatz zu OpenGL bestand Microsoft darauf, Hardware strikt eins zu eins zu unterstützen. Der Ansatz machte DirectX zunächst als eigenständige Grafik-API weniger beliebt, da viele GPUs ihre eigenen spezifischen Funktionen bereitstellten, von denen vorhandene OpenGL-Anwendungen bereits profitieren konnten, sodass DirectX häufig eine Generation zurückblieb. (Siehe: Vergleich von OpenGL und Direct3D .)

Im Laufe der Zeit begann Microsoft, enger mit Hardwareentwicklern zusammenzuarbeiten und die Versionen von DirectX so auszurichten, dass sie mit denen der unterstützenden Grafikhardware übereinstimmen. Direct3D 5.0 war die erste Version der aufkeimenden API, die auf dem Spielemarkt breite Akzeptanz fand, und sie konkurrierte direkt mit vielen hardwarespezifischeren, häufig proprietären Grafikbibliotheken, während OpenGL eine starke Anhängerschaft hatte. Direct3D 7.0 führte die Unterstützung für hardwarebeschleunigte Transformation und Beleuchtung (T & L) für Direct3D ein, während OpenGL diese Funktion bereits von Anfang an zur Verfügung stellte. 3D-Beschleunigerkarten waren nicht nur einfache Rasterer , sondern fügten der 3D-Rendering-Pipeline eine weitere wichtige Hardwarestufe hinzu. Die Nvidia GeForce 256 (auch als NV10 bekannt) war die erste Consumer-Karte mit hardwarebeschleunigtem T & L auf dem Markt, während professionelle 3D-Karten bereits über diese Funktion verfügten. Hardware-Transformation und Beleuchtung, beides bereits vorhandene Funktionen von OpenGL, kamen in den 90er Jahren zu Hardware auf Verbraucherebene und bildeten den Präzedenzfall für spätere Pixel-Shader- und Vertex-Shader- Einheiten, die weitaus flexibler und programmierbarer waren.

2000 bis 2010

Nvidia stellte als erstes Unternehmen einen Chip her, der programmierbar schattiert werden kann . die GeForce 3 (Code mit dem Namen NV20). Jedes Pixel könnte nun von einem kurzen "Programm" verarbeitet werden, das zusätzliche Bildtexturen als Eingaben enthalten könnte, und jeder geometrische Scheitelpunkt könnte ebenfalls von einem kurzen Programm verarbeitet werden, bevor er auf den Bildschirm projiziert wird. In der Xbox- Konsole konkurrierte es mit der PlayStation 2 , die eine benutzerdefinierte Vektoreinheit für die hardwarebeschleunigte Vertex-Verarbeitung verwendete. üblicherweise als VU0 / VU1 bezeichnet. Die frühesten Inkarnationen von Shader-Ausführungs-Engines, die in Xbox verwendet wurden, waren nicht universell einsetzbar und konnten keinen beliebigen Pixelcode ausführen. Scheitelpunkte und Pixel wurden von verschiedenen Einheiten verarbeitet, die ihre eigenen Ressourcen mit Pixel-Shadern hatten, die viel strengere Einschränkungen hatten (da sie mit viel höheren Frequenzen ausgeführt wurden als mit Scheitelpunkten). Pixel Shading Engines ähnelten eigentlich eher einem hochgradig anpassbaren Funktionsblock und "führten" ein Programm nicht wirklich aus. Viele dieser Unterschiede zwischen Scheitelpunkt- und Pixelschattierung wurden erst viel später mit dem Unified Shader-Modell behoben .

Mit der Einführung der ATI Radeon 9700 (auch bekannt als R300) im Oktober 2002 konnten die weltweit ersten Direct3D 9.0-Beschleuniger-, Pixel- und Vertex-Shader Schleifen- und langwierige Gleitkomma- Berechnungen implementieren und wurden schnell so flexibel wie CPUs, wurden jedoch bestellt für Bild-Array-Operationen schneller. Pixelschattierungen werden häufig für die Bump-Zuordnung verwendet , die Textur hinzufügt, um ein Objekt glänzend, stumpf, rau oder sogar rund oder extrudiert aussehen zu lassen.

Mit der Einführung der Nvidia GeForce 8-Serie und den neuen GPUs für generische Stream-Verarbeitungseinheiten wurden GPUs zu allgemeineren Computergeräten. Heute haben parallele GPUs begonnen, rechnerische Fortschritte gegen die CPU zu machen, und ein Teilgebiet der Forschung, GPU Computing oder GPGPU für General Purpose Computing auf GPU genannt , hat seinen Weg in so unterschiedliche Bereiche wie maschinelles Lernen , Ölexploration und wissenschaftliche Bildverarbeitung gefunden . lineare Algebra , Statistik , 3D-Rekonstruktion und sogar Preisermittlung für Aktienoptionen . GPGPU war zu dieser Zeit der Vorläufer eines sogenannten Compute-Shaders (z. B. CUDA, OpenCL, DirectCompute) und missbrauchte die Hardware tatsächlich bis zu einem gewissen Grad, indem die an Algorithmen übergebenen Daten als Texturabbildungen behandelt und Algorithmen durch Zeichnen eines Dreiecks oder Quad ausgeführt wurden mit einem geeigneten Pixel-Shader. Dies ist offensichtlich mit einigen Gemeinkosten verbunden, da Einheiten wie der Scan-Konverter dort eingesetzt werden, wo sie nicht wirklich benötigt werden (und Dreiecksmanipulationen sind auch kein Problem - außer um den Pixel-Shader aufzurufen).

Die 2007 erstmals eingeführte CUDA- Plattform von Nvidia war das früheste weit verbreitete Programmiermodell für GPU-Computing. In jüngerer Zeit wurde OpenCL weitgehend unterstützt. OpenCL ist ein offener Standard, der von der Khronos Group definiert wurde und die Entwicklung von Code für GPUs und CPUs mit Schwerpunkt auf Portabilität ermöglicht. OpenCL-Lösungen werden von Intel, AMD, Nvidia und ARM unterstützt. Laut einem aktuellen Bericht von Evan's Data ist OpenCL die GPGPU-Entwicklungsplattform, die von Entwicklern sowohl in den USA als auch im asiatisch-pazifischen Raum am häufigsten verwendet wird.

2010 bis heute

Im Jahr 2010 begann Nvidia eine Partnerschaft mit Audi , um die Armaturenbretter ihrer Autos anzutreiben. Diese Tegra- GPUs versorgten das Armaturenbrett des Autos mit Strom und boten den Navigations- und Unterhaltungssystemen des Autos mehr Funktionalität. Fortschritte in der GPU-Technologie in Autos haben dazu beigetragen, die selbstfahrende Technologie voranzutreiben . Die Karten der Radeon HD 6000-Serie von AMD wurden 2010 veröffentlicht, und 2011 veröffentlichte AMD die diskreten GPUs der 6000M-Serie für mobile Geräte. Die Kepler-Grafikkartenserie von Nvidia erschien 2012 und wurde in den Karten der Serien 600 und 700 von Nvidia verwendet. Ein Merkmal dieser neuen GPU-Mikroarchitektur war GPU Boost, eine Technologie, die die Taktrate einer Grafikkarte anpasst, um sie entsprechend ihrer Leistungsaufnahme zu erhöhen oder zu verringern. Die Kepler-Mikroarchitektur wurde im 28-nm-Verfahren hergestellt.

Die PS4 und Xbox One wurden 2013 veröffentlicht. Beide verwenden GPUs, die auf AMDs Radeon HD 7850 und 7790 basieren . Auf die Kepler-GPU-Linie von Nvidia folgte die Maxwell- Linie, die nach demselben Verfahren hergestellt wurde. 28-nm-Chips von Nvidia wurden von TSMC, der Taiwan Semiconductor Manufacturing Company, hergestellt, die zu diesem Zeitpunkt nach dem 28-nm-Verfahren herstellte. Im Vergleich zur 40-nm-Technologie aus der Vergangenheit ermöglichte dieses neue Herstellungsverfahren eine Leistungssteigerung von 20 Prozent bei geringerem Stromverbrauch. Virtual-Reality- Headsets stellen sehr hohe Systemanforderungen. Hersteller von VR-Headsets empfahlen die GTX 970 und die R9 290X oder besser zum Zeitpunkt ihrer Veröffentlichung. Pascal ist die nächste Generation von Consumer-Grafikkarten von Nvidia, die 2016 veröffentlicht wurde. Die Kartenserie GeForce 10 gehört zu dieser Generation von Grafikkarten. Sie werden im 16-nm-Herstellungsverfahren hergestellt, das frühere Mikroarchitekturen verbessert. Nvidia hat eine Nicht-Consumer-Karte unter der neuen Volta- Architektur herausgebracht, die Titan V. Zu den Änderungen gegenüber der Titan XP, der High-End-Karte von Pascal, gehören eine Erhöhung der Anzahl der CUDA-Kerne, die Hinzufügung von Tensorkernen und HBM2 . Tensorkerne sind Kerne, die speziell für tiefes Lernen entwickelt wurden, während Speicher mit hoher Bandbreite ein gestapelter On-Die-Speicher mit niedrigerem Takt ist, der einen extrem breiten Speicherbus bietet, der für den beabsichtigten Zweck des Titan V nützlich ist. Um zu betonen, dass es sich bei der Titan V nicht um eine Spielkarte handelt, hat Nvidia das Suffix "GeForce GTX" entfernt, das den Consumer-Spielkarten hinzugefügt wird.

Am 20. August 2018 brachte Nvidia die GPUs der RTX 20-Serie auf den Markt, die GPUs mit Raytracing-Kernen ausstatten und so ihre Leistung bei Lichteffekten verbessern. Polaris 11- und Polaris 10- GPUs von AMD werden nach einem 14-Nanometer-Verfahren hergestellt. Ihre Veröffentlichung führt zu einer erheblichen Steigerung der Leistung pro Watt von AMD-Grafikkarten. AMD hat auch die Vega-GPU-Serie für den High-End-Markt als Konkurrent zu Nvidias High-End-Pascal-Karten herausgebracht, die ebenfalls HBM2 wie den Titan V enthalten.

Im Jahr 2019 veröffentlichte AMD den Nachfolger seines GCN-Mikroarchitektur- / Befehlssatzes ( Graphics Core Next ). Als RDNA bezeichnet, war die erste Produktreihe mit der ersten Generation von RDNA die Grafikkarte der Radeon RX 5000-Serie , die später am 7. Juli 2019 auf den Markt kam. Später gab das Unternehmen bekannt, dass der Nachfolger der RDNA-Mikroarchitektur eine Auffrischung sein würde. Die neue Mikroarchitektur mit dem Namen RDNA 2 soll im vierten Quartal 2020 veröffentlicht werden.

AMD stellte auf einer Online-Veranstaltung am 28. Oktober 2020 die Radeon RX 6000-Serie vor , ihre RDNA 2-Grafikkarten der nächsten Generation mit Unterstützung für hardwarebeschleunigtes Raytracing. Das Sortiment besteht zunächst aus dem RX 6800, dem RX 6800 XT und dem RX 6900 XT . Der RX 6800 und 6800 XT wurde am 18. November 2020 auf den Markt gebracht, der RX 6900 XT am 8. Dezember 2020. Die auf Navi 22 basierenden Varianten RX 6700 und RX 6700 XT werden voraussichtlich in der ersten Hälfte des Jahres auf den Markt kommen 2021.

Die PlayStation 5 und Xbox Series X und Series S wurden im Jahr 2020 veröffentlicht. Beide verwenden GPUs, die auf der RDNA 2- Mikroarchitektur basieren, mit proprietären Optimierungen und unterschiedlichen GPU-Konfigurationen in der Implementierung jedes Systems.

GPU-Unternehmen

Viele Unternehmen haben GPUs unter einer Reihe von Markennamen hergestellt. Im Jahr 2009 waren Intel , Nvidia und AMD / ATI mit einem Marktanteil von 49,4%, 27,8% bzw. 20,6% Marktführer. Zu diesen Zahlen gehören jedoch die integrierten Grafiklösungen von Intel als GPUs. Ohne diese Angaben kontrollieren Nvidia und AMD ab 2018 fast 100% des Marktes. Ihre jeweiligen Marktanteile betragen 66% und 33%. Darüber hinaus produzieren S3 Graphics und Matrox GPUs. Moderne Smartphones verwenden auch hauptsächlich Adreno- GPUs von Qualcomm , PowerVR- GPUs von Imagination Technologies und Mali-GPUs von ARM .

Rechenfunktionen

Moderne GPUs verwenden die meisten ihrer Transistoren , um Berechnungen in Bezug auf 3D-Computergrafiken durchzuführen . Zusätzlich zur 3D-Hardware bieten die heutigen GPUs grundlegende 2D-Beschleunigungs- und Framebuffer- Funktionen (normalerweise mit einem VGA-Kompatibilitätsmodus). Neuere Karten wie AMD / ATI HD5000-HD7000 haben sogar keine 2D-Beschleunigung. Es muss von 3D-Hardware emuliert werden. GPUs wurden anfänglich verwendet , um die speicherintensive Arbeit zu beschleunigen Textur - Mapping und Rendering Polygonen, späte Einheiten Hinzufügen zu beschleunigen geometrische Berechnungen wie die Drehung und Übersetzung von Vertices in verschiedene Koordinatensysteme . Zu den jüngsten Entwicklungen bei GPUs gehören die Unterstützung programmierbarer Shader, die Scheitelpunkte und Texturen mit vielen der gleichen Vorgänge bearbeiten können , die von CPUs unterstützt werden , Oversampling- und Interpolationstechniken zur Reduzierung von Aliasing sowie sehr hochpräzise Farbräume . Da die meisten dieser Berechnungen Matrix- und Vektoroperationen beinhalten , haben Ingenieure und Wissenschaftler zunehmend die Verwendung von GPUs für nicht grafische Berechnungen untersucht. Sie eignen sich besonders für andere peinlich parallele Probleme.

Mit dem Aufkommen von Deep Learning hat die Bedeutung von GPUs zugenommen. In einer von Indigo durchgeführten Untersuchung wurde festgestellt, dass GPUs beim Training von Deep-Learning-Neuronalen Netzen 250-mal schneller sein können als CPUs. In diesem Bereich gab es einen gewissen Wettbewerb mit ASICs , insbesondere der Tensor Processing Unit (TPU) von Google. ASICs erfordern jedoch Änderungen am vorhandenen Code, und GPUs sind immer noch sehr beliebt.

GPU-beschleunigte Videodecodierung und -codierung

Die ATI HD5470-GPU (oben) verfügt über UVD 2.1, mit dem AVC- und VC-1-Videoformate dekodiert werden können

Die meisten seit 1995 hergestellten GPUs unterstützen den YUV- Farbraum und Hardware-Overlays , die für die digitale Videowiedergabe wichtig sind, und viele seit 2000 hergestellte GPUs unterstützen auch MPEG- Grundelemente wie Bewegungskompensation und iDCT . Dieser Prozess der hardwarebeschleunigten Videodecodierung, bei dem Teile des Videodecodierungsprozesses und der Videonachbearbeitung auf die GPU-Hardware verlagert werden, wird üblicherweise als "GPU-beschleunigte Videodecodierung", "GPU-unterstützte Videodecodierung", "GPU-Hardware beschleunigt" bezeichnet Videodecodierung "oder" GPU-Hardware-unterstützte Videodecodierung ".

Neuere Grafikkarten dekodieren sogar hochauflösende Videos auf der Karte, wodurch die Zentraleinheit entladen wird. Die gängigsten APIs für die GPU-beschleunigte Videodecodierung sind DxVA für Microsoft Windows- Betriebssysteme und VDPAU , VAAPI , XvMC und XvBA für Linux-basierte und UNIX-ähnliche Betriebssysteme. Alle außer XvMC können mit MPEG-1 , MPEG-2 , MPEG-4 ASP (MPEG-4 Teil 2) , MPEG-4 AVC (H.264 / DivX 6), VC-1 , WMV3 / WMV9 codierte Videos decodieren , Xvid / OpenDivX- (DivX 4) und DivX 5- Codecs , während XvMC nur MPEG-1 und MPEG-2 decodieren kann.

Es gibt verschiedene dedizierte Hardware-Videodecodierungs- und -codierungslösungen .

Videodecodierungsprozesse, die beschleunigt werden können

Die Videodecodierungsprozesse, die durch die moderne GPU-Hardware von heute beschleunigt werden können, sind:

Die obigen Operationen haben auch Anwendungen in der Videobearbeitung, -codierung und -transcodierung

GPU-Formulare

Terminologie

In PCs gibt es zwei Hauptformen von GPUs. Jeder hat viele Synonyme:

Verwendungsspezifische GPU

Die meisten GPUs sind für eine bestimmte Verwendung, Echtzeit-3D-Grafiken oder andere Massenberechnungen ausgelegt:

  1. Spielen
  2. Cloud Gaming
  3. Arbeitsplatz
  4. Cloud Workstation
  5. Training für künstliche Intelligenz und Cloud
  6. Automatisiertes / fahrerloses Auto

Spezielle Grafikkarten

Die GPUs der leistungsstärksten Klasse sind in der Regel über einen Erweiterungssteckplatz wie PCI Express (PCIe) oder Accelerated Graphics Port (AGP) mit dem Motherboard verbunden und können in der Regel relativ einfach ausgetauscht oder aktualisiert werden, sofern das Motherboard dies unterstützt das Upgrade. Einige Grafikkarten verwenden noch PCI-Steckplätze ( Peripheral Component Interconnect ), ihre Bandbreite ist jedoch so begrenzt, dass sie im Allgemeinen nur verwendet werden, wenn kein PCIe- oder AGP-Steckplatz verfügbar ist.

Eine dedizierte GPU ist nicht unbedingt entfernbar und muss auch nicht standardmäßig mit dem Motherboard verbunden werden. Der Begriff "dediziert" bezieht sich auf die Tatsache, dass dedizierte Grafikkarten über RAM verfügen , das für die Verwendung der Karte vorgesehen ist, und nicht auf die Tatsache, dass die meisten dedizierten GPUs entfernbar sind. Außerdem wird dieser RAM normalerweise speziell für die erwartete serielle Arbeitslast der Grafikkarte ausgewählt (siehe GDDR ). Manchmal wurden Systeme mit dedizierten, diskreten GPUs als "DIS" -Systeme bezeichnet, im Gegensatz zu "UMA" -Systemen (siehe nächster Abschnitt). Spezielle GPUs für tragbare Computer werden aufgrund von Größen- und Gewichtsbeschränkungen am häufigsten über einen nicht standardmäßigen und häufig proprietären Steckplatz angeschlossen. Solche Ports können hinsichtlich ihrer logischen Host-Schnittstelle immer noch als PCIe oder AGP betrachtet werden, selbst wenn sie nicht physisch mit ihren Gegenstücken austauschbar sind.

Technologien wie SLI und NVLink von Nvidia und CrossFire von AMD ermöglichen es mehreren GPUs, Bilder gleichzeitig für einen einzelnen Bildschirm zu zeichnen, wodurch die für Grafiken verfügbare Verarbeitungsleistung erhöht wird. Diese Technologien werden jedoch zunehmend seltener, da die meisten Spiele mehrere GPUs nicht vollständig nutzen, da sich die meisten Benutzer diese nicht leisten können. Auf Supercomputern (wie in Summit ), auf Workstations zur Beschleunigung von Videos (Verarbeitung mehrerer Videos gleichzeitig) und 3D-Rendering, für VFX und für Simulationen sowie in AI zur Beschleunigung des Trainings werden weiterhin mehrere GPUs verwendet , wie dies bei Nvidia der Fall ist DGX-Workstations und -Server sowie Tesla-GPUs und Intels kommende Ponte Vecchio-GPUs.

Integrierte Grafikverarbeitungseinheit

Die Position einer integrierten GPU in einem Northbridge / Southbridge-Systemlayout
Ein ASRock- Motherboard mit integrierter Grafik, das über HDMI-, VGA- und DVI-Ausgänge verfügt.

Integrierte Grafikverarbeitungseinheit (IGPU), integrierte Grafik , gemeinsam genutzte Grafiklösungen , integrierte Grafikprozessoren (IGP) oder einheitliche Speicherarchitektur (UMA) verwenden einen Teil des System-RAM eines Computers anstelle eines dedizierten Grafikspeichers. IGPs können als Teil des (Northbridge-) Chipsatzes oder auf demselben Chip (integrierte Schaltung) wie die CPU (wie AMD APU oder Intel HD Graphics ) auf dem Motherboard integriert werden . Auf bestimmten Motherboards können die IGPs von AMD dedizierten Sideport-Speicher verwenden. Dies ist ein separater fester Block von Hochleistungsspeicher, der für die Verwendung durch die GPU vorgesehen ist. Anfang 2007 machen Computer mit integrierter Grafik etwa 90% aller PC-Lieferungen aus. Ihre Implementierung ist kostengünstiger als die dedizierte Grafikverarbeitung, jedoch tendenziell weniger leistungsfähig. In der Vergangenheit galt die integrierte Verarbeitung als nicht geeignet, um 3D-Spiele zu spielen oder grafisch intensive Programme auszuführen, konnte jedoch weniger intensive Programme wie Adobe Flash ausführen. Beispiele für solche IGPs wären Angebote von SiS und VIA um 2004. Moderne integrierte Grafikprozessoren wie AMD Accelerated Processing Unit und Intel HD Graphics sind jedoch mehr als in der Lage, 2D-Grafiken oder 3D-Grafiken mit geringer Belastung zu verarbeiten.

Da die GPU-Berechnungen extrem speicherintensiv sind, kann die integrierte Verarbeitung mit der CPU um den relativ langsamen System-RAM konkurrieren, da sie nur über minimalen oder keinen dedizierten Videospeicher verfügt. IGPs können eine Speicherbandbreite von bis zu 29,856 GB / s aus dem System-RAM haben, während eine Grafikkarte zwischen ihrem RAM und dem GPU-Kern eine Bandbreite von bis zu 264 GB / s haben kann . Diese Speicherbusbandbreite kann die Leistung der GPU einschränken, obwohl der Mehrkanalspeicher diesen Mangel verringern kann. Ältere integrierte Grafikchipsätze hatten keine Hardware- Transformation und Beleuchtung , neuere jedoch.

Hybride Grafikverarbeitung

Diese neuere Klasse von GPUs konkurriert mit integrierten Grafiken auf dem Low-End-Desktop- und Notebook-Markt. Die häufigsten Implementierungen hierfür sind ATI Hypermemory und Nvidias Turbocache .

Hybrid-Grafikkarten sind etwas teurer als integrierte Grafiken, aber viel billiger als dedizierte Grafikkarten. Diese teilen sich den Speicher mit dem System und verfügen über einen kleinen dedizierten Speichercache, um die hohe Latenz des System-RAM auszugleichen. Technologien innerhalb von PCI Express können dies ermöglichen. Während diese Lösungen manchmal mit bis zu 768 MB RAM beworben werden, bezieht sich dies darauf, wie viel mit dem Systemspeicher geteilt werden kann.

Stream-Verarbeitung und Allzweck-GPUs (GPGPU)

Es wird immer üblicher, eine Allzweck-Grafikverarbeitungseinheit (GPGPU) als modifizierte Form eines Stream-Prozessors (oder eines Vektorprozessors ) zu verwenden, auf dem Rechenkerne ausgeführt werden . Dieses Konzept wandelt die enorme Rechenleistung der Shader-Pipeline eines modernen Grafikbeschleunigers in allgemeine Rechenleistung um, anstatt nur für grafische Operationen fest verdrahtet zu sein. In bestimmten Anwendungen, die massive Vektoroperationen erfordern, kann dies zu einer um mehrere Größenordnungen höheren Leistung führen als eine herkömmliche CPU. Die beiden größten diskreten GPU-Entwickler (siehe " Dedicated Graphics Cards " oben), AMD und Nvidia , beginnen diesen Ansatz mit einer Reihe von Anwendungen zu verfolgen. Sowohl Nvidia als auch AMD haben sich mit der Stanford University zusammengetan , um einen GPU-basierten Client für das verteilte Computerprojekt Folding @ home für Proteinfaltungsberechnungen zu erstellen . Unter bestimmten Umständen berechnet die GPU vierzigmal schneller als die CPUs, die traditionell von solchen Anwendungen verwendet werden.

GPGPU kann für viele Arten von peinlich parallelen Aufgaben verwendet werden, einschließlich Raytracing . Sie eignen sich im Allgemeinen für Berechnungen mit hohem Durchsatz, die Datenparallelität aufweisen , um die SIMD- Architektur der GPU mit großer Vektorbreite auszunutzen .

Darüber hinaus spielen GPU-basierte Hochleistungscomputer eine wichtige Rolle bei der Modellierung in großem Maßstab. Drei der 10 leistungsstärksten Supercomputer der Welt nutzen die GPU-Beschleunigung.

Die GPU unterstützt API-Erweiterungen der Programmiersprache C wie OpenCL und OpenMP . Darüber hinaus hat jeder GPU-Anbieter eine eigene API eingeführt, die nur mit seinen Karten AMD APP SDK und CUDA von AMD bzw. Nvidia funktioniert . Mit diesen Technologien können bestimmte Funktionen, die als Rechenkerne eines normalen C-Programms bezeichnet werden, auf den Stream-Prozessoren der GPU ausgeführt werden. Dies ermöglicht es C-Programmen, die Fähigkeit einer GPU zu nutzen, große Puffer parallel zu betreiben und bei Bedarf weiterhin die CPU zu verwenden. CUDA ist auch die erste API, mit der CPU-basierte Anwendungen direkt auf die Ressourcen einer GPU zugreifen können, um allgemeinere Berechnungen durchzuführen, ohne die Einschränkungen der Verwendung einer Grafik-API.

Seit 2005 besteht Interesse daran, die von GPUs angebotene Leistung für die evolutionäre Berechnung im Allgemeinen und für die Beschleunigung der Fitnessbewertung bei der genetischen Programmierung im Besonderen zu nutzen. Die meisten Ansätze kompilieren lineare oder Baumprogramme auf dem Host-PC und übertragen die ausführbare Datei zur Ausführung auf die GPU. In der Regel wird der Leistungsvorteil nur erzielt, wenn das einzelne aktive Programm bei vielen Beispielproblemen gleichzeitig unter Verwendung der SIMD- Architektur der GPU ausgeführt wird . Eine erhebliche Beschleunigung kann jedoch auch erzielt werden, indem die Programme nicht kompiliert und stattdessen auf die GPU übertragen werden, um dort interpretiert zu werden. Die Beschleunigung kann dann erreicht werden, indem entweder mehrere Programme gleichzeitig interpretiert werden, mehrere Beispielprobleme gleichzeitig ausgeführt werden oder beide kombiniert werden. Eine moderne GPU kann leicht gleichzeitig Hunderttausende sehr kleiner Programme interpretieren.

Einige moderne Workstation-GPUs, wie die Nvidia Quadro-Workstation-Karten, die die Architekturen Volta und Turing verwenden, verfügen über dedizierte Prozessorkerne für tensorbasierte Deep-Learning-Anwendungen. In der aktuellen GPU-Serie von Nvidia werden diese Kerne als Tensorkerne bezeichnet. Diese GPUs weisen normalerweise signifikante FLOPS-Leistungssteigerungen auf, indem sie die 4x4-Matrixmultiplikation und -Division verwenden, was in einigen Anwendungen zu einer Hardwareleistung von bis zu 128 TFLOPS führt. Diese Tensorkerne sollen auch in Verbraucherkarten mit der Turing-Architektur und möglicherweise in der Navi-Reihe von Verbraucherkarten von AMD enthalten sein.

Externe GPU (eGPU)

Eine externe GPU ist ein Grafikprozessor, der sich außerhalb des Gehäuses des Computers befindet, ähnlich einer großen externen Festplatte. Externe Grafikprozessoren werden manchmal mit Laptops verwendet. Laptops verfügen möglicherweise über eine erhebliche Menge an RAM und eine ausreichend leistungsstarke Zentraleinheit (CPU), verfügen jedoch häufig nicht über einen leistungsstarken Grafikprozessor und stattdessen über einen weniger leistungsstarken, aber energieeffizienteren integrierten Grafikchip. On-Board-Grafikchips sind häufig nicht leistungsfähig genug, um Videospiele oder andere grafisch intensive Aufgaben wie das Bearbeiten von Videos oder 3D-Animationen / -Rendering zu spielen.

Daher ist es wünschenswert, eine GPU an einen externen Bus eines Notebooks anschließen zu können. PCI Express ist der einzige Bus, der für diesen Zweck verwendet wird. Der Port kann beispielsweise ein ExpressCard- oder mPCIe- Port (PCIe × 1, bis zu 5 bzw. 2,5 Gbit / s) oder ein Thunderbolt 1-, 2- oder 3-Port (PCIe × 4, bis zu 10, 20 oder) sein 40 Gbit / s). Diese Anschlüsse sind nur auf bestimmten Notebook-Systemen verfügbar. eGPU-Gehäuse verfügen über ein eigenes Netzteil (PSU), da leistungsstarke GPUs problemlos Hunderte von Watt verbrauchen können.

Die offizielle Unterstützung von Anbietern für externe GPUs hat in letzter Zeit an Bedeutung gewonnen. Ein bemerkenswerter Meilenstein war die Entscheidung von Apple, externe GPUs mit MacOS High Sierra 10.13.4 offiziell zu unterstützen. Es gibt auch mehrere große Hardwareanbieter (HP, Alienware, Razer), die Thunderbolt 3 eGPU-Gehäuse herausbringen. Diese Unterstützung hat die Implementierung von eGPU durch Enthusiasten weiter vorangetrieben.

Der Umsatz

Im Jahr 2013 wurden weltweit 438,3 Millionen GPUs ausgeliefert, und für 2014 wurden 414,2 Millionen prognostiziert.

Siehe auch

Hardware

APIs

Anwendungen

Verweise

Externe Links