News Microsoft DirectStorage 1.1: Die GPU dekomprimiert Spieldateien rasant

W0dan schrieb:
Ladezeiten sind da ja nur die Spitze des Eisbergs. Interessant wirds, wenn das Potenzial mal für das Streming von Daten innerhalb der Spielwelt genutzt wird. Gerade da erwarte ich große Sprünge (viel mehr Details in Spielwelten). Und genau dafür wurde das ganze ja auch entwickelt.

Wenn die GPU durch Dekomprimierung belastet wird, sinkt ja ihre Leistung zur Generierung von Bildern. Da muss man als Entwickler doch schon auf ein gesundes Verhältnis achten, oder?
 
Bin jetzt auch nicht wirklich gehyped, solang es sich wie bei Forspoken nur auf die Ladezeiten beschränkt und sich nicht spürbar in FPS oder der Qualität der Spiele widerspiegelt. Wenn dahingehend überhaupt was passiert im Bezug auf Direct Storage.
 
  • Gefällt mir
Reaktionen: Master Chief !
Piktogramm schrieb:
aber für doof halte ich die Entwickler von Kernel und systemnahen APIs nicht.
das wollte ich so nicht sagen :) sie wollen sich das anschauen, sind aber nicht soweit:
Microsoft says it's looking to implement DMA (direct memory access) between SSD and GPU using DirectStorage: "We are looking into supporting this in the future, but there's some more work we need to do in order for this functionality to be robust enough to include in Windows."
https://www.tweaktown.com/news/7886...to-unlock-max-io-with-desktop-gpus/index.html
 
da bin ich ja mal gespannt, wie sich das ab nächstes jahr auswirken auf hardware-käufe auch wenn ich persönlich für die nächsten jahre gerüstet sein werde mit ner nvme die die 7GB/s hat als auch ner CPU mit genug power unter habe und schnellerem ram sofern der flck es mit machen wird.
 
Das ist ja interessant. Finde ich auch super.
In Anbetracht der Größe aktueller (und vermutlich kommender) AAA Spiele ist das großartig. Wobei ich mich frage: Spielt da die Größe des Gesamtspiels überhaupt eine Rolle, oder ist das nur für das Laden aus "instanzierten" Bereichen relevant?
Eine große und gute Spiele NVMe wird dann wohl bald als Upgrade (für mich) angesagt sein. :) Hoffentlich fallen da die Preise noch ein Stück.
 
Martinipi schrieb:
Da die GPU direkt auf die Datenmengen zugreift würde ich eher schätzen, dass die benötigte Bandbreite eher steigt statt sinkt... Nur eben nicht zur CPU, sondern zur SSD.
Laut dem Bild im Artikel werden die Daten jetzt aber komprimiert an die GPU geschickt und nicht wie vorher unkomprimiert. Also sollte doch wieder weniger Bandbreite nötig sein, oder?
 
Cr4y schrieb:
Wenn die GPU durch Dekomprimierung belastet wird, sinkt ja ihre Leistung zur Generierung von Bildern. Da muss man als Entwickler doch schon auf ein gesundes Verhältnis achten, oder?

Davon würde ich nicht unbedingt ausgehen.

1. Die Shader der GPU sind selten vollständig ausgelastet, (auch im GPU Limit) gibt also genug freie, ungenutze Ressourcen.
2. Laut Nvidia schafft RTX I/O 24 GB/s. Ich gehe mal stark davon aus, dass die 24GB/s so bemessen sind, dass es kaum Auswirkungen auf die Grafikperformance haben sollte.
3. Aktuelle SSDs schaffen nur ca 7 GB/s, also weniger als 1/3 dessen was RTX I/O liefert.
4. Bei den ersten Games werden die hohen Datenraten erstmal nur zum initialen Laden genutzt, wodurch es keine Rolle spielt, wie viel Leistung Direct Storage brauchen würde.
5. Sobald Direct Storage für das Streaming im Spiel genutzt wird, wird Sampler Feedback Streaming dafür sorgen, dass die Datenmengen gering bleiben.

Es wird sicherlich noch einige Jahre dauern, bis wir mal Spiele sehen, die während des laufenden Spiels durch das Streaming eine PCIe3, geschweige denn eine PCIe4 SSD auslasten.

Das alles scheint aktuell so maßlos überdimensioniert zu sein, dass ich da wirklich keine Probleme sehe.
 
  • Gefällt mir
Reaktionen: Tanzmusikus, Cr4y und Vitec
Ist zwar nett, dass DI nun ankommt 2023, aber mich reisst jetzt der Unterschied von ssd zu nvme nicht so vom hocker. die 3.x sec bei der ssd kommen mir jetzt nicht so viel länger vor, als dass ich sagen würde... WOW ich brauche unbedingt nun eine NVMe. Vorallem ist halt die Frage welche SSD udn nvme wurden in forsaken gegenübergestellt.
 
  • Gefällt mir
Reaktionen: Master Chief !
Ist auf jedenfall positiv dass das ganze doch noch für Windows 10 kommt und man nicht zum Update auf Windows 11 gezwungen wird wie das bei Microsoft ja vorher z.B. mit DirectX 12 der fall war... wenn es dann acuh noch viele Spiele unterstützen (da die Konsolen ja super davon Profitieren wird das wohl nicht zu wenig werden) klingt das alles nach ner super sache!
 
W0dan schrieb:
als nur Ladescreens abzuschaffen.

Die Ladescreens sind echt lästig.
Das Beste was ich in so einem Screen gelesen habe wasr bei Anno 1800. Ging ungefähr so "Wenn man bewusstlos ist soll man mit dem Spielen aufhören"
 
Wird mehr von der Engine als von einzelnen Spielen abhängen, wie schnell man das eingebaut sieht.
Unreal preschte da recht schnell voran bei der Ankündigung für Unreal 5.
Bei Unity las man nur Entwicklerwehklagen um einen massiven Umbau, der nötig würde.

Das Problem dürfte ja schon da losgehen, dass die Entwickler ihre Assets im Build in proprietären komprimierten Bundles (.pak bei Unreal und .bundle bei Unity) zusammensammeln, die dann durchaus stattliche Dimensionen annehmen können.

Wenn ich aus so einem Bundle dann nur eine Hand voll Assets draus lade, aber auf der GPU entpacken müchte, müsste ich ja jedes mal das ganze (!) Bundle von der SSD in den RAM und dann in die GPU hochladen. Und dort dann halten? Zumal ich der GPU beibringen muss, mein Format überhaupt zu entpacken.

Sounds und UI Grafiken stecken in den komprimierten Assetbundles ja auch noch oft drin... für die sich die GPU garantiert nicht interessiert, so dass zumindest Unity da sehr grundsätzliches ändern müsste.

Ich steck da in den exakten Details nicht genug drin, aber mein Bauchgefühl sagt:
  • Dauert bei Unity noch ewig, wenn's überhaupt in absehbarer Zeit in 'ner Form kommt, die für Entwickler ohne Händchenhalten durch Unity benutzbar ist.
  • Wir brauchen mehr VRAM und/oder das Asset- und Speicher-Management (was halte ich vor, was schmeiß ich weg?) wird nochmal 'ne ganze Ecke komplizierter.


1665754673139.png
 
Zuletzt bearbeitet:
Sinn machen die neuen Technologien nur wenn sie auf alte Software und Spiele anwendbar sind. Alle neuen Titel sind ja oft schon mit neuste n Technik / Hardware gut bedient.

Zu dumm das man alles Erst dafür optimieren muss statt das es passiv durch Windows geschieht ...
 
Zuletzt bearbeitet:
Tsu schrieb:
SATA SSDs können DMA und sind der IOMMU zugänglich‽ @MichaG
Da bin ich überfragt, aber bei Microsoft klang es so, als ob es auf allen grundsätzlich ginge:

DirectStorage enabled games will work on all devices (. You’ll need an NVMe SSD, where the bandwidth capabilities are much higher and the storage media itself is faster, to see the significant improvements of DirectStorage. We highly recommend ensuring your game files are saved to an NVMe to get the best gaming experience.

Vielleicht ist das dann die richtige Antwort?

Piktogramm schrieb:
AHCI kann es von Seite des Protokolls her:
https://www.intel.in/content/dam/ww...pecifications/serial-ata-ahci-spec-rev1_0.pdf

DS kann aber generell auch I/O über Kernel/CPU abwickeln, die API ist flexibel

Aber nur mit NVMe (und dem entsprechenden Durchsatz) sollte da auch spürbar was bei rumkommen, denke ich.
 
  • Gefällt mir
Reaktionen: Tanzmusikus
MichaG schrieb:
Aber nur mit NVMe (und dem entsprechenden Durchsatz) sollte da auch spürbar was bei rumkommen, denke ich.
Jain, brauchbare NVMe Laufwerke haben einen besseren Durchsatz um Faktor >10. Da gibt es nichts dran zu rütteln. Was DirectStorage als API jedoch an Abstraktion liefert, ist im Zweifelsfall auch für (flotte) Sata SSDs relevant. DS implementiert ja mehrere Dinge, ein Teil davon ist AsyncIO und nebenläufige Decompression von Assets. Wobei das AsyncIO einmal über CPU/Kernel laufen kann oder aber auch (zukünftig??) über DMA. Bei der Decompression gibt es dann auch die Möglichkeit die auf CPU oder GPU laufen zu lassen.
Da wird also tendenziell Entwicklern sehr viel Arbeit für einen extrem performancekritischen Pfad abgenommen und Sata SSDs liefern bei QD >1 ja auch ganz gut ab.

In einen der anderen Threads zu DS haben wir auch Demos diskutiert, die gezeigt haben, dass selbst mit hochauflösenden Assets dank intelligent implementierter Algorithmen die Datenraten beim streamen von Assts irgendwo bei ~10MB/s lagen. Es wird sich zeigen, wie viel Optimierung an der Stelle erfolgt, oder ob sich Engines/Studios darauf verlassen, dass die Konsolen und Spielerechner Hardware haben, die weniger optimierte Ansätze tollerieren.
 
  • Gefällt mir
Reaktionen: vander, MichaG und Tanzmusikus
Für den Spielestart mit Startup-Video Spam und Zwnagsepilepsiebelehrungen, sowie mehreren "press key" Bestäigungen wird es leider nichts bringen. Ansonsten konnte man bei manchen Games Ladevorteile zwischen aktuellen Konsolen und PCs für die Konsolen feststellen, der PC zieht also nach.
 
Zuletzt bearbeitet:
Grafikprozessoren sind bekanntlich für paralleles Rechnen prädestiniert und können diese Aufgaben weitaus effizienter als CPUs erledigen



Warum eigentlich?
 
Mich würde ja interessieren ob es auch vergleichbare Techniken unter Linux gibt. Ich habe bisher gehört, das DirectStorage 1.0 wohl ähnlich ist wie io_uring unter Linux, aber idk.
 
  • Gefällt mir
Reaktionen: Tanzmusikus
halbtuer2 schrieb:
Grafikprozessoren sind bekanntlich für paralleles Rechnen prädestiniert und können diese Aufgaben weitaus effizienter als CPUs erledigen

Warum eigentlich?
Ganz kurz: GPUs sind extrem einseitig darauf optimiert, zum extremen Nachteil in anderen Belangen. Reines Rechnen ist extrem flott, wenn es zu Entscheidungen bzw. Branching kommt wird es auf GPUs schnell richtig übel.
Weitergehende Erklärung wird zu sehr OT und die Informationen gibt es im Netz und benötigen Aufwand deinerseits ;)

ShadowDragon schrieb:
Mich würde ja interessieren ob es auch vergleichbare Techniken unter Linux gibt. Ich habe bisher gehört, das DirectStorage 1.0 wohl ähnlich ist wie io_uring unter Linux, aber idk.
Jain, DS als API bündelt verschiedene Ding wie AsyncIO, nebenläufige Dekompression auf CPU und/oder GPU und tendenziell DMA zwischen GPU und Festspeicher, ohne dass sich Entwickler groß darum kümmern müssen. Als ein Paket gibt es das meines Wissens für Linux/Mesa bisher nicht. AsyncIO ist unter Linux mit io_uring verfügbar, den DMA Teil zwischen GPU und Festpeicher gibt es unter Linux schon lange[2]. Bibliotheken für nebenläufige Dekompression sollte es auch irgendwo im GNU/FOSS-Kosmos auch geben.
Was (noch fehlt) ist eine API, die das alles schön zusammenpackt. Es gibt da aber glaube Entwürfe für Vulkan.

Edit: Eine API, die den ganzen Kram gescheit zusammenpackt und abstrahiert ist wirklich viel Wert. Das wird abseits von zentral verwalteten Ökosystemen wie Microsofts Windows und Apples MacOS wahrscheinlich länger dauern.

[2] Da hauptsächlich in der Färbung, dass die GPUs in einem Rack stehen und via rDMA bzw NVMe-oF auf den Festspeicher einige Racks weiter zugreifen.
 
  • Gefällt mir
Reaktionen: halbtuer2, rhin_tin, Colindo und 2 andere
Zurück
Oben