DX-12-Update erlaubt einen direkten Zugriff der CPU auf den Grafikspeicher
Microsofts neues Feature GPU Upload Heaps ermöglicht es, dass CPU und GPU simultan auf den Grafikspeicher zugreifen können. Dadurch sollen einerseits Systemressourcen wie Arbeitsspeicher gespart werden können, während andererseits auch die Performance durch den sehr schnellen Grafikspeicher steigen sollte. Lesen Sie daher im Folgenden mehr zu GPU Upload Heaps.
Microsoft hat ein neues Feature vorgestellt, das die Performance von Spielen unter DX 12 deutlich verbessern könnte. Gemeinsam mit Resizable-Bar ermöglicht GPU Upload Heaps es, dass die CPU direkt auf den Grafikspeicher zugreifen kann. Dadurch sinkt nicht nur die Arbeitsspeicherauslastung im System, da einige Daten nicht mehr von der CPU zur GPU kopiert werden müssen, sondern auch die Performance soll steigen. GPU Upload Heaps ist ein Teil des neuen Agilityx SDK 1.710.0, das in seiner Preview-Version ab sofort erhältlich ist.
Das Feature ist eine wichtige Reaktion auf einen aktuellen Trend. Der Grafikspeicher bei aktuellen Modellen wird immer größer und immer mehr Daten müssen darin abgelegt werden, sodass die CPU diese Daten weitergeben muss. Bisher muss dazu immer eine Kopie der Daten im Arbeitsspeicher liegen und die andere im Grafikspeicher. Der Hauptspeicher ist allerdings langsamer als der Grafikspeicher und verfügt über schlechtere Latenzen, sodass Upload Heaps bei Nutzung des Grafikspeichers auch die CPU-Leistung minimal verbessern könnte.
Als Spieler hat man wenig Voraussetzungen für GPU Upload Heaps. Es ist Hardware nötig, die Resizable-Bar bzw. Smart Access Memory, je nach Nomenklatur der Hersteller, auf CPU- und GPU-Ebene unterstützt. Es braucht also mindestens eine Radeon RX 6xx0 oder Geforce RTX 30x0 (Ti) in Kombination mit der elften Core-Generation oder AMDs Ryzen auf Zen-2-Basis. Das Feature erlaubt es Windows, den Grafikspeicher direkt zu verwalten, wodurch GPU Upload Heaps erst funktionieren kann.
Unterstützt wird es bereits von AMD, Intel und Nvidia, doch bei AMD-Grafikkarten muss der unterstützte Treiber seitens der Entwickler angefragt werden, während Intel und Nvidia ihre entsprechenden Treiber bereits veröffentlicht haben. Da das Feature erst von Microsoft vorgestellt wurde, ist nicht davon auszugehen, dass es zeitnah von Spielen genutzt wird und doch stellt es eine interessante Neuentwicklung dar, die die Performance zukünftiger Titel verbessern könnte.
Quelle: Microsoft

Die Unterteilung in verschiedene, getrennte Busse hat beim PC erst nach und nach Einzug gehalten, weil die systemweiten Lösungen einfach nicht skalierbar und schnarchlahm waren. Da konnte zwar jeder mit jedem reden, aber die meiste Zeit haben alle auf irgend einen gewartet. Ich hatte das letztes Jahr mal im Rahmen der Sockelgeschichte aufgeschrieben, wie sich aus dem System- über mehrere Zwischenstufen der Front-Side-Bus entwickelt hat.
[Ins Forum, um diesen Inhalt zu sehen]
[Ins Forum, um diesen Inhalt zu sehen]
[Ins Forum, um diesen Inhalt zu sehen]
In wie weit die Amiga-Lösung technisch überlegen war, kann ich mangels Kenntnis derselben nicht sagen, aber das Direct Memory Access nur direkten Zugriff auf den (Haupt-)Speicher bietet, erklärt sich doch quasi von selbst.^^ Dieser ist beim PC aber prinzipiell allen Geräten möglich, die an einem DMA-tauglichen Bus hängen. In diesem Zusammenhang sei an die Sicherheitsprobleme rund um Thunderbolt erinnert, dass den vollen PCI-E-Feature-Stack externen Geräten zugänglich machen kann – inklusive DMA, aber halt mit einem Sicherheitskonzept, dass wie folgt aussieht: "Wenn Sie Angst vor Angriffen via PCI-E haben, dann machen sie doch ein Schloss ans Gehäuse."
am Amiga sah das so aus:
[Ins Forum, um diesen Inhalt zu sehen]
hier am beispiel eines OCS/ECS-systems (modelle A500, A500+, A600, A1000, A2000, A3000). hier können als von der CPU aus direkt daten auf sämtliche bereiche und zurück fließen - der chipsatz waren hier co-prozessoren, die das system und vor allem die grafik beschleunigten. auch diese architektur erlaubte bereits eine datenbreite von 32 bit.
hier ein schaubild des datenflusses im PC (ein einfacheres schaubild fand ich auf die schnelle nicht, aber der datenfluss bzw. die kommunikation zw. den komponenten ist hier doch gut zu erkennen):
[Ins Forum, um diesen Inhalt zu sehen]
es ist zu erkennen, dass hier die daten am PC über mehrere zwischenstationen fließen müssen und nicht alle komponenten direkt miteinander kommunizieren können, sondern es sind controller zwischengeschaltet, um die daten noch einmal an die komponenten zu verteilen und zurück zu senden. das bedeutet natürlich geschwindigkeitsverluste. man beachte den datenweg von der CPU zum grafikspeicher. von langsameren OS und den bremsenden treibern damals fange ich jetzt nicht an, da hat sich ja zum glück einiges getan.
klar, in DMA steckt das wort "Memory", was diesen natürlich betrifft ^^ aber durch die einfachere, direktere hardwarestruktur des Amigas und direkteren zugriffs auf die komponenten von CPU und speicher konnten daten schneller fließen bzw. controller waren erst verbaut, wenn nötig. z.b. brachte oft externe hardware integrierte controller mit, siehe hier:
[Ins Forum, um diesen Inhalt zu sehen]
(eine festplatte mit externem A500-controller)
man schaltete zusätzliche controller quasi erst ans ende der daten-/kommunikationsleitungen "hinten ran".
interessant war das auch mit z.b. PPC-erweiterungskarten bei den AGA-Amigas (wie z.B. meinem noch vorhandenen A4000):
man steckte die erweiterungskarte mit PPC direkt auf den prozessorsockel und hatte quasi ein kleineres 2. board auf dem mainboard, auf dem dann PPC, co-prozessor (bei mir 68060), fast RAM und SCSI-schnittstelle stecken.
soweit zu den physischen unterschieden.
deswegen ist hier die frage bzw. der lösungsansatz interessant, wie Microsoft diesen "umweg" vermeidet bzw, wie das technisch umzusetzen ist, damit das funktioniert. dass der system-RAM ausgelassen wird, ist klar, sonst würde das keinen sinn machen. aber funktioniert das ganze so einfach, dass einfach nur der RAM ausgelassen wird oder steckt da mehr dahinter? ich bin auf den lösungsansatz von MS gespannt.
[Ins Forum, um diesen Inhalt zu sehen]
In wie weit die Amiga-Lösung technisch überlegen war, kann ich mangels Kenntnis derselben nicht sagen, aber das Direct Memory Access nur direkten Zugriff auf den (Haupt-)Speicher bietet, erklärt sich doch quasi von selbst.^^ Dieser ist beim PC aber prinzipiell allen Geräten möglich, die an einem DMA-tauglichen Bus hängen. In diesem Zusammenhang sei an die Sicherheitsprobleme rund um Thunderbolt erinnert, dass den vollen PCI-E-Feature-Stack externen Geräten zugänglich machen kann – inklusive DMA, aber halt mit einem Sicherheitskonzept, dass wie folgt aussieht: "Wenn Sie Angst vor Angriffen via PCI-E haben, dann machen sie doch ein Schloss ans Gehäuse."