Multi-GPU-Gaming auf Chiplets: Architektur und Funktionen für PC

Multi-GPUs von Chiplets stehen vor der Tür und obwohl wir sie zuerst in Form von HPC-Karten und damit außerhalb des Gaming-Marktes sehen werden, wissen wir längst, dass die Entwicklung hin zum Bau von Grafikkarten auf Basis von Multi-GPUs geht pro Chip. Aber was bringen sie im Vergleich zu einem herkömmlichen Monolith GPU? Lesen Sie weiter, um es herauszufinden.

Multi-GPU-Gaming auf Chiplets

Die Architektur, die wir in diesem Artikel besprechen, ist noch nicht auf dem Markt erhältlich, wurde noch nicht einmal vorgestellt, ist aber das Ergebnis einer Analyse der Fortschritte der letzten Jahre sowie der verschiedenen Patente auf Multi-GPU Chiplets, die beides AMD, NVIDIA und Intel haben in den letzten zwei Jahren veröffentlicht. Aus diesem Grund haben wir uns entschieden, diese Informationen zu verwenden und zu synthetisieren, damit Sie eine Vorstellung davon haben, wie diese Art von GPUs funktionieren und welche Grafikprobleme sie lösen.

Herkömmliches 3D-Rendering mit mehreren GPUs

GPU-Dual

Die Kombination mehrerer Grafikkarten zum Rendern jedes Frames in 3D-Videospielen ist nicht neu, da es mit Voodoo 2 von 3dfx möglich ist, die Rendering-Arbeit ganz oder teilweise auf mehrere Grafikkarten aufzuteilen. Die gebräuchlichste Methode ist das Alternate Frame Rendering, bei dem die CPU sendet die Bildschirmliste jedes Frames abwechselnd an jede GPU. GPU 1 verarbeitet beispielsweise die Frames 1, 3, 5, 7, während GPU 2 die Frames 2, 4, 6, 8 usw. verarbeitet.

Es gibt eine andere Möglichkeit, eine Szene in 3D zu rendern, das Split Frame Rendering, das aus mehreren GPUs besteht, die eine einzelne Szene rendern und die Arbeit aufteilen, jedoch mit den folgenden Nuancen: Eine GPU ist die Master-GPU, die die Liste der Bildschirme liest und erledigt den Rest. Die ersten Stufen der Pipeline vor der Rasterung werden wie bei der Rasterung ausschließlich auf der ersten GPU ausgeführt und die späteren Stufen werden gleichermaßen auf jeder GPU ausgeführt.

Split Frame Rendering scheint ein gerechter Weg zu sein, um die Arbeit zu verteilen, aber jetzt werden wir sehen, welche Probleme diese Methode mit sich bringt und mit welchen Einschränkungen sie verbunden ist.

Die Grenzen des Split Frame Rendering und die mögliche Lösung

GPU-Chiplets

Jede GPU enthält 2 Sammlungen von DMA-Laufwerken, das erste Paar kann gleichzeitig Daten im System lesen oder schreiben RAM über den PCI-Express-Port, aber in vielen Grafikkarten mit Crossfire- oder SLI-Unterstützung gibt es eine weitere Sammlung von DMA-Laufwerken, die den Zugriff auf den VRAM des anderen Graphen ermöglichen. Natürlich bei der Geschwindigkeit des PCI-Express-Ports, der ein echter Flaschenhals ist.

Im Idealfall hätten alle zusammenarbeitenden GPUs denselben VRAM-Speicher gemeinsam, aber dies ist nicht der Fall. Die Daten werden also so oft dupliziert, wie Grafikkarten am Rendering beteiligt sind, was äußerst ineffizient ist. Hinzu kommt die Arbeitsweise von Grafikkarten beim Rendern von 3D-Grafiken in Echtzeit, was dazu geführt hat, dass die Konfiguration mit mehreren Grafikkarten nicht mehr verwendet wird.

Kachel-Caching auf einer Multi-GPU durch Chiplets

Kachel-Caching

Das Tile Caching-Konzept wurde von NVIDIAs Maxwell-Architektur und AMDs Vega-Architektur verwendet. Es geht darum, einige Konzepte aus dem Rendering nach Kacheln zu übernehmen, jedoch mit dem Unterschied, dass anstatt jede Kachel in einem separaten Speicher zu rendern und nur dann in den VRAM zu schreiben, wenn es fertig ist, wird auf dem Cache der zweiten Ebene durchgeführt. Dies hat den Vorteil, dass die Energiekosten einiger Grafikvorgänge eingespart werden, der Nachteil besteht jedoch darin, dass dies von der Größe des Top-Level-Cache auf der GPU abhängt.

Das Problem besteht darin, dass ein Cache nicht wie ein herkömmlicher Speicher funktioniert und jederzeit und ohne Programmsteuerung eine Cache-Zeile an die nächste Ebene der Speicherhierarchie gesendet werden kann. Was ist, wenn wir uns entscheiden, dieselbe Funktionalität auf eine Chiplet-basierte GPU anzuwenden? Nun, hier kommt die zusätzliche Cache-Ebene ins Spiel. Unter dem neuen Paradigma wird der Last-Level-Cache jeder GPU als Speicher für das Tile-Caching ignoriert und es wird jetzt der Last-Level-Cache der Multi-GPU verwendet, der auf zu finden wäre ein separater Chip.

Die LCC auf einer Multi-GPU von Chiplets

COPA-GPU Multi-GPU-Chiplets

Der neueste Cache für Chiplet-basierte Multi-GPUs vereint eine Reihe gemeinsamer herstellerunabhängiger Merkmale, sodass die folgende Liste von Merkmalen für jede GPU dieses Typs gilt, unabhängig vom Hersteller.

  • Es ist in keiner der GPUs zu finden, sondern befindet sich außerhalb dieser und befindet sich daher auf einem separaten Chip.
  • Es verwendet einen Interposer mit einer sehr schnellen Schnittstelle wie eine Siliziumbrücke oder TSV-Verbindungen, um mit dem L2-Cache jeder GPU zu kommunizieren.
  • Die benötigte hohe Bandbreite erlaubt keine konventionelle Verschaltung und ist daher nur in einer 2.5DIC-Konfiguration möglich.
  • Das Chiplet, in dem sich der Cache der letzten Ebene befindet, speichert nicht nur diesen Speicher, sondern ist auch der Ort, an dem sich der gesamte VRAM-Zugriffsmechanismus befindet, der auf diese Weise von der Rendering-Engine entkoppelt ist.
  • Seine Bandbreite ist viel höher als die des HBM-Speichers, weshalb er fortschrittlichere 3D-Verbindungstechnologien verwendet, die viel höhere Bandbreiten ermöglichen.
  • Darüber hinaus hat er, wie jeder Cache der letzten Ebene, die Fähigkeit, allen Elementen, die Clients sind, Konsistenz zu verleihen.

Dank dieses Caches wird verhindert, dass jede GPU ihren eigenen VRAM hat, um einen gemeinsamen zu haben, was die Datenvielfalt stark reduziert und Engpässe beseitigt, die das Produkt der Kommunikation in einer herkömmlichen Multi-GPU sind.

Master- und untergeordnete GPUs

Patentierte AMD Multi-GPU Chiplets

Bei einer Grafikkarte auf Basis einer Multi-GPU by Chiplets existiert beim Erstellen der Displayliste noch die gleiche Konfiguration wie bei einer herkömmlichen Multi-GPU. Wo eine einzelne Liste erstellt wird, die die erste GPU empfängt, die für die Verwaltung der restlichen GPUs verantwortlich ist, aber der große Unterschied besteht darin, dass das LLC-Chiplet, das wir im vorherigen Abschnitt besprochen haben, es der ersten GPU ermöglicht, Aufgaben zu koordinieren und an die Rest der Multi-GPU-Verarbeitungseinheiten pro Chiplet.

Eine alternative Lösung besteht darin, dass allen Chiplets der Multi-GPU der Befehlsprozessor vollständig fehlt, und dieser befindet sich in derselben Schaltung, in der sich das LCC-Chiplet als Orchesterdirigent befindet, und nutzt die gesamte vorhandene Kommunikationsinfrastruktur, um die verschiedenen Befehle zu senden Threads zu verschiedenen Teilen der GPU.

Im zweiten Fall hätten wir keine Master-GPU und den Rest als Untergeordnete, sondern die gesamte integrierte 2.5D-Schaltung wäre eine einzige GPU, die jedoch nicht monolithisch aus mehreren Chiplets besteht.

Seine Bedeutung für Raytracing

Professionelle Raytracing

Einer der wichtigsten Punkte für die Zukunft ist Raytracing, dessen Funktion es erfordert, dass das System eine räumliche Datenstruktur über die Informationen der Objekte erstellt, um den Lichttransport darzustellen. Es hat sich gezeigt, dass die Beschleunigung, die Raytracing erleidet, wichtig ist, wenn sich die Struktur in der Nähe des Prozessors befindet.

Natürlich ist diese Struktur komplex und benötigt viel Speicher. Aus diesem Grund wird es in Zukunft äußerst wichtig sein, einen großen LLC-Cache zu haben. Aus diesem Grund befindet sich der LLC-Cache in einem separaten Chiplet. Um die höchstmögliche Kapazität zu haben und diese Datenstruktur so nah wie möglich an der GPU zu platzieren.

Heutzutage ist ein Großteil der Langsamkeit beim Raytracing darauf zurückzuführen, dass sich ein Großteil der Daten im VRAM befindet und es beim Zugriff eine enorme Latenz gibt. Denken Sie daran, dass der LLC-Cache in einer Multi-GPU die Vorteile nicht nur in Bezug auf die Bandbreite, sondern auch in Bezug auf die Latenz eines Caches hätte. Darüber hinaus werden die für die Beschleunigung verwendeten BVH-Strukturen aufgrund ihrer Größe und der in den Labors von Intel, AMD und NVIDIA entwickelten Datenkomprimierungstechniken im „internen“ Speicher der GPU gespeichert.