Warum gibt es keine Quad-Core GPUs?

Doktor_Pa1n

Cadet 4th Year
Registriert
Juli 2015
Beiträge
70
Eine Frage die ich mir schon Jahre stelle ist, warum es keine Grafikkarten mit Quad-Core GPUs gibt?
Wären die Nachteile von Microrucklern, sprich die Synchronisations-Probleme der einzelnen GPUs denn so groß?
Oder wäre die Produktion schlichtweg zu teuer und damit der Verkaufspreis zu hoch?

Ich meine diese Probleme gab es doch auch bei den CPUs - und sie wurden und werden überwunden.
Es ist absehbar, dass in einigen Jahren Octa-Core CPUs der Standard sein werden.
Das ist schön, bringt dem Gamer aber eher weniger, denn gerade in Punkto Gaming war und ist es doch fast immer die Leistung der Grafikkarte, die maßgeblich limitiert. Spätestens seit dem Quad-Core CPUs der Standard sind. Dennoch hat sich bei den Grafikkarten nichts getan: Weiterhin Single-Core GPUs, SLI und Dual-Core GPUs sind eher die Ausnahme, als die Regel.

Ich bin mir sicher, dass viele gerne Ultra Details auf 4k nutzen würden, zur Not per downsampling. Oder Full HD/WQHD mit 120 FPS für 120 Hz.
Selbst mit 2 aktuellen Top Grafikkarten im SLI Verbund oder mit einer Dual-Core GPU Grafikkarte, ist das in aktuellen Spielen eher die Ausnahme als die Regel. Diese Settings dann 2-3 Jahre lang bei allen erscheinenden Games mit der gleichen Grafiklösung zu fahren, ist noch mehr Utopie.

Was denkt/meint ihr zu diesem Thema?
 
GPUs haben das schon lange hinter sich gelassen?! Wird sind heute bei über 4000 Kernen in der GPU...
Die sind natürlich weniger Komplex als ein Kern in einer CPU.
Im Gegensatz zur CPU lassen sich die Prozesse auf einer GPU in einer gemeinsamen Basis gut parallelisieren. Deshalb hat man in der GPU relativ früh mit dem Ausbau und der Parallelisierung begonnen.

Wenn man nun aber mehrere dieser Cluster zusammenschalten will wird es schwierig, die Prozesse richtig zu verteilen und zu synchronisieren (Da die Infrastruktur der Kerne sich verdoppelt.) Bei Zeitkritischen Anwendungen ist das eben Murks, da ist es sinnvoller eine gemeinsame Basis zu behalten/auszubauen und die Anzahl der Shader intern zu verdoppeln.
 
Zuletzt bearbeitet:
tach,
hier http://www.3dcenter.org/artikel/3dfx-voodoo5-6000-review
hast eine Quad GPU

ich würd ma sagen
- die würden viel zu groß sein
- viel zu viel abwärme auf einer kleinen fläche (schwer zu kühlen)
- sehr hoher verbrauch
- Games ect. müssen sowas auch nutzen können (das scheitert ja meist schon bei SLI / CF)
 
GPUs bestehen schon aus sehr vielen "Kernen". Eine GTX 980 Ti hat 2816 sogenannte Streamprozessoren. Die Grenze ist da eher die Wirtschaftlichkeit. Sehr große Chips werden einfach zu teuer, produzieren zu viel Abwärme, finden also kaum Abnehmer.
 
Zuletzt bearbeitet:
Eine GPU arbeitet völlig anders als eine CPU. Auch sind die Anforderungen an die Architektur eine komplett andere.

Und was du meinst gibt es schon lange. GPUs sind heutzutage ein Verbund hunderter parallel betriebener Rechenkerne.
Von da her ist deine eingangs gestellte Frage obsolet... ;)
 
Und wenn man die Aussage des TEs jetzt mal wörtlich nimmt. Vier GPUs auf einem PCB bringt auch nichts. So rein gar nichts.

Erst einmal bekommt man das nicht auf einem PCB verbaut und gekühlt. So eine Karte ergäbe nur Sinn, mit den stärksten Grafikchips. Und da hat man schon mit 2 GPUs auf einem PCB seine Probleme.

Und ein Quad SLI / CrossFire ist technisch auch totaler Unsinn. Mit 2 GPUs ergibt SLI / CF noch Sinn. Bei dreien wird es schon Problematisch mit der Mehrleistung. Und bei vieren passiert fast gar nichts mehr in Sachen Performanceverbesserung.
 
Das was man unter einem "CPU-Kern" versteht entspricht in etwa einer Compute-Unit bei AMD oder einem Multiprozessor bei NVIDIA. Dementsprechend hat eine Titan X 24 Kerne mit 64-Fachen "Hyperthreading" pro Kern und eine Fury X 64 Kerne mit 40-Fachen Hyperthreading pro Kern.

Anmerkungen:
-Je nach Kerndefinition könnte man bei Maxwell schon fast von 4 Kernen pro Multiprozessor reden. Bei GCN ist ähnliches der Fall; eine CU ist ebenfalls in vier Teile unterteilt, nur ist dort die Unterteilung etwas weniger stark ausgeprägt.

-Das was man unter Begriffen wie "Shader-Kern" versteht ist nur eine einzelne Lane einer Vektor-ALU/FPU in einem GPU-Kern. Analogerweise enthält auch jeder moderne CPU-Kern eine Vektor-FPU mit mehreren Lanes. Ein Shader-Kern entspricht also keinem kompletten CPU-Kern sondern nur einem kleinen Teil eines CPU-Kerns.
 
Zuletzt bearbeitet:
Das mit den von ghecko angesprochenen x tausend Kernen pro GPU war mir bekannt. Damit wurden und werden manchmal auch Grafikkarten beworben. Ohne zu viel Kenntnis von der Materie zu haben dachte ich mir, dass sei wohl ähnlich wie beim Hyperthreading bei den CPUs. Nai hat es detaillierter erklärt, vielen Dank.

An die von BlubbsDE angesprochene mangelnde Größe des PCBs dachte ich auch schon. Aber auch solche Probleme wurden bei den CPUs auch gelöst, bei der Abwärme das Gleiche. Warum sind dann nicht wenigstens Dual-Core Grafikkarten mittlerweile vielleicht kein Standard, aber zumindest deutlich weiter verbreitet? Ich habe den Eindruck, dass sich da sehr wenig tut bei den Grafikkarten.

Denkt ihr, dass Grafikkarten mit zumindest 2 GPUs mittelfristig (in ca. 5 Jahren) mehr an Bedeutung gewinnen werden? Da fehlt vllt. die Basis. Hätten PS4 und XBox1 2 GPUs, wären wir wahrscheinlich schon weiter. Der Leistungsbedarf nach Multicore ist zumindest viel deutlicher vorhanden, als bei den CPUs. Zumindest fürs Gaming.

Wenn sich da nichts tut, wird das dieses Jahrzehnt nichts mehr mit 4k Gaming in der breiten Masse.
 
Zuletzt bearbeitet:
Warte einfach mal auf die 16nm Fertigung. Dann bekommt man viel mehr Transistoren auf gleiche Chipfläche.

Zum vergleich:
Ein Intel Skylake i7 hat (inkl GPU Teil) 1,35 Mrd. Transistoren auf 122 mm² Fläche bei einer Fertigung in 14 nm.
Ein GM200 (Nvidia Maxwell) besitzt 8 Mrd. Transistoren auf 601 mm² Fläche bei einer Fertigung von 28 nm.

Dual GPU Karten sind schon immer Notlösungen, weil ein Chip mit 601 mm² schon verdammt groß ist. Man kann also nicht einfach zwei "GPUs" in einem Chip fertigen (wie bei CPUs, da ist ein Kern viel Kleiner). Und wenn man sie auf zwei fertigt (wie bisher) hat man die Kommunikations und Synchronisationsprobleme die zu den bekannten Problemen wie Microruckler führen.

Also wie gesagt, auf 16 nm warten. Dann können mehr Transistoren auf gleicher Fläche untergebraucht werden -> schneller. (Schon die HD 7000 von AMD bzw. GTX 600 Serie von Nvidia wurden in 28 nm gefertigt)
 
Zuletzt bearbeitet:
@Nilson

und warum sollte dieser Umstand die Dual oder MehrGPU Karten beflügeln? Das wird er nicht. Dual und MehrGPU Karten werden immer nur eine Machbarkeitsstudie sein. Die Fertigungsstrukturen verkleinern sich, seit dem Halbleiter gebaut werden.
 
Ich hab auch nix anderes behauptet :D

Das mit den "Warte auf ..." Bezog sich eher auf:

Doktor_Pa1n schrieb:
Wenn sich da nichts tut, wird das dieses Jahrzehnt nichts mehr mit 4k Gaming in der breiten Masse.

Seine Lösung : Dual GPU
Meine Lösung: 16 nm
 
Momentan ist eine Dual-GPU-Karte ein Rechner mit einem verteiltem Speicher. Dadurch verhält sie sich sowohl von der Performance (was für Algorithmen sie mag und nicht mag) als auch von der Programmierung so, wie zwei herkömmliche "CPU-Rechner", die über das LAN miteinander verbunden sind. Im Wesentlichen besitzt sie dadurch momentan folgende Nachteile:
1. Kein direkter Zugriff auf den Speicher der anderen GPU. Falls eine GPU Daten im Speicher der anderne GPU benötigt, so müssen die Daten zunächst, bevor überhaupt mit der ersten Berechnung begonnen werden kann, kopiert werden. Zumindest bei NVIDIA und unter CUDA ist dieser Nachteil bereits nicht mehr vorhanden - ein direkter Zugriff ist also möglich-, wodurch NVIDIA-GPUs ein NUMA-System bilden. Dafür besitzt der Zugriff aber weiterhin viele andere Nachteile.
2. Wenig Bandbreite zwischen den beiden GPUs. Die L2-Caches haben im Moment 1 TB/s, HBM hat immer noch 500 GB/s während PCIE noch bei 15 GB/s herumdümpelt. Dadurch können die GPUs nur vergleichsweise wenig Daten austauschen, bevor diese Bandbreite limitiert. Dies schränkt stark die Möglichkeiten der Zusammenarbeit und auch des direkten Zugriffs ein. Afaik will NVIDIA zumindest diesen Nachteil auch mit NV-Link in Zukunft etwas "abschwächen".
3. Die GPUs werden seperat angestuert. Jede der GPUs benötigt sowohl ihre eigenen Drawcalls als auch Compute-Calls und arbeitet diese dann autonom ab. So können beispielhaft zwei GPUs bei Drawcalls nicht gleichzeitig in das selbe Bild zeichnen. Auch kann die GPU-interne Aufgabenverteilung nicht Compute-Aufgaben auf die andere GPU verlagern. Dies erhöht den Programmieraufwand deutlich. Die beiden zuvor genannten Nachteile machen diesen "Nachteil" jedoch für eine gute Performance erforderlich.


Im aktuellen Zustand glaube ich deshalb kaum, dass sich Multi-GPU (abgesehen von den aktuellen SLI/AFR-Treiberhacks) nur im entferntesten durchsetzen wird. Es erfordert wegen den Nachteilen zu viel Programmierarbeit und skaliert doch nur sehr schlecht. Dementsprechend stehe ich den Hoffnungen gegenüber gutem SFR in DX12 auch sehr skeptisch gegenüber.

Wie sich die Nachteile in Zukunft entwickeln werden ist m.E. etwas schwer abzuschätzen - es wird hauptsächlich davon abhängig sein wie sehr sich die Bandbreite zwischen den GPUs entwickeln wird und wie sehr die Hersteller Interesse daran haben Multi-GPU-Karten zu pushen und wie aufwändig Multi-GPU-Programmierung in Zukunft sein wird. Die bisherigen Erfahrungen in der Informatik bezüglich NUMA-Systemen lehren aber, dass die Bandbreite zwischen den einzelnen Prozessoren bei vielen Algorithmen ein Flaschenhals ist. Dieser Flaschenhals muss bei der Programmierung meist besonders berücksichtigt werden, was einen oft einen erheblichen Aufwand darstellt, und kann die Performance dennoch stark reduzieren.

Eventuell schreibe ich über Weihnachten mal einen längeren Multi-GPU-Artikel hier im Forum, wenn ich langweile habe.
 
Zuletzt bearbeitet:
Schau dir doch einfach mal an wie gut NVIDIA SLI und AMD Crossfire mit jeweils 2, 3 oder 4 Karten funktionieren und vor allem skalieren.

Und dann wieviel Strom aktuelle SINGLE GPU aus den Netzteilen saugen bzw. wieviel Hitze sie ins Gehäuse blasen.

Anschließend kannst du dir deine Frage selber beantworten. ;)
 
Vielen Dank Nai, sehr guter Post!
Die Sache scheint komplizierter/problematischer zu sein als bei den CPUs. Also sieht es schlecht aus bzgl. Multi GPU/SLI/CF:
- technische Hürden (Bandbreite zur Kommunikation zwischen den GPUs)
- komplizierter und hoher Programmier-Aufwand
- hohe Wärmeentwicklung
- laute und teure Kühlung
- hohe Stromkosten
- Platzprobleme auf dem PCB
- schlechte Skalierung ab 2 GPUs

Also Leistungssteigerung u.a. durch kleinere Fertigungsverfahren, die aber noch satt Potential hat. Weil bei den Größen ist es ja nicht mehr weit bis zu 0nm... ;) 1999 war man bei 220nm und 2016/17 werden wir bei 14nm/16nm sein.
 
Zuletzt bearbeitet:
Wenn Du CPUs und GPUs bei dieser Sache vergleichst, dann hast Du doch auch schon Deine Antworten. Eine Fury Chip / GM200 hat eben nicht nur einen Kern. Da ging die Entwicklung analog zu der der CPUs auch weiter.

Du mischt da vieles zusammen. Ein PGA Package einer CPU / GPU beinhaltet schon mehrere Kerne.

Wenn eine GPU mit einem Thread arbeiten würde, dann sähe die 3D Welt der gerenderten Bilder etwas anders aus, heute.
 
Zuletzt bearbeitet:
Das wäre das analoge zu einem Dual GPU System

nEO_IMG_ws_1.jpg
 
Ja, Nilson, wobei das auch nicht wirklich hin kommt, denn so ein System skaliert wunderbar (vorausgesetzt die Software kann mit den zur Verfügung stehenden Kernen/Threads etwas anfangen).

Bei Grafikkarten sieht die ganze Sache deutlich komplizierter und aufwändiger aus. Weil es eben zwei völlig andere Architekturen sind die beide völlig andere Stärken und Schwächen haben und auch ganz anders angesprochen und mit Daten versorgt werden vom "System".

Das "Problem" hier liegt in der Annahme das Doktor_Pa1n diesen Unterschied noch nicht so richtig erfasst hat...
Eine einzelne GPU ist heute schon in ihrer Arbeitsweise weit mehr parallelisiert als das bei CPUs je sein wird.
 
Zuletzt bearbeitet:
@ Nilson
Das ist m.E. nicht der Fall. Ein System aus zwei Prozessoren ist ein NUMA-System, während eine Dual-GPU-Karte in der Regel ein System mit verteilten Speicher bildet. Selbst wenn NUMA prinzipiell auf NVIDIA-GPUs vorhanden ist, so ist es von den Möglichkeiten und der Performance stark eingeschränkt, weshalb es nötig oder sinnvoller sein kann dort auch kein NUMA zu verwenden (siehe Anmerkung). Auch kann die automatische Lastverteilung des Betriebssystems auf einem Dual-CPU-System Threads zwischen den beiden Prozessoren hin und her bewegen. Die automatische Lastbalancierung der GPU schafft dies nicht.

Insgesamt führt das dazu, dass man ein Dual-CPU-System prinzipiell so programmieren kann, als ob es nur eine CPU enthält, und die Performance ohne die Beachtung von NUMA wahrscheinlich nicht einmal gar zu schlecht ist. Eine Dual-GPU-Karte programmiert sich jedoch nicht wie eine einzige GPU sondern sie programmiert sich eher so, wie zwei Rechner die über ein Netzwerk verbunden sind.

Anmerkung: NUMA ist bei GPUs momentan nur bei NVIDIA auf Quadros/Telas unter CUDA und dort auch nur für den globalen Speicher und nicht für Texturen möglich. Im Gegensatz zu modernen Dual-CPU-Systemen werden bei NVIDIAs NUMA die Zugriffe auf den Speicher der anderen GPU nicht lokal zwischengespeichert, was den effektiven Nutzen von NUMA weiter stark einschränkt. Deshalb kann ein Kopieren in vielen Fällen schneller als die Verwendung von NUMA oder auch sogar nur die einzige Möglichkeit sein.
 
Zuletzt bearbeitet:
Zurück
Oben