News Microsoft: DirectStorage Developer Preview verfügbar

@M@tze

Eine neue API bedeutet, dass Programme diese explizit ansprechen müssen.
Außer natürlich man modifiziert die bestehende und leitet die Befehle um, was Microsoft anscheinend nicht getan hat.

Soweit ich weiß wird Direct Storage nicht mit alten Spielen funktionieren, solange sie nicht dafür angepasst sind.


Nur nochmal zur Verdeutlichung, das hier wird aktuell gemacht
1626972643710.png

CPU dekomprimiert Assets und schickt die dekomprimierten Assets in den VRAM.
Einerseits limitiert hier die CPU Leistung, andererseits wird nach dem dekomprimieren viel Bandbreite gebraucht, um die Daten von der CPU in den RAM zu schreiben und von dort in den VRAM zu schieben.

Das hier macht man mit Direct Storage:
1626972772824.png

Die Daten werden in komprimierter Form von SSD in den RAM geschrieben und direkt in den VRAM geschoben. Da die Assets komprimiert bleiben, spart das extrem viel Bandbreite. Erst dann werden auf der GPU die Assets entpackt. Man spart extrem viel Bandbreite und CPU Zeit.

Auf der Xbox wird das gleiche gemacht. Daten werden von SSD in den VRAM/RAM gespeichert und dann per "Hardware Decompression" entpackt. Was genau das bedeutet weiß ich nicht, entweder hat Microsoft einen dedizierten Chip dafür oder entpackt auch mit der GPU, wie am PC. Ich vermute letzteres.


Das hier macht die PS5:
1626971996967.png

Daten werden von SSD geladen und von einem speziellen Dekompressions Chip entpackt und direkt in den VRAM/RAM (ist ja bei den Konsolen das gleiche) geschrieben. Der Umweg über die CPU entfällt auch hier. Vorteil bei der PS5: die Dekompression wird nicht von der GPU sondern von einem speziellen Chip durchgeführt. Damit hat Sony oft geworben.

Im Grunde also die gleich Grundidee. Datenwerden nicht mehr von der CPU dekomprimiert. Am Ende landen die Daten viel schneller und effizienter im VRAM.


Und hier noch das Schema von Nvidias RTX I/O
1626973241105.jpeg

Auffällig ist hier, dass der Weg in den RAM entfällt und offenbar ein kopieren von Storage -> VRAM auf direktem Weg möglich ist. Das wäre natürlich nochmal ein Stück effizienter.

Auch hier werden die Assets dann auf der GPU dekomprimiert. Nvidia gibt hier an, dass ein komprimierter Stream von einer 7 GB/s PCIe 4.0 SSD bis zu 14 GB Durchsatz entspricht, wofür man ohne RTX I/O (und wahrscheinlich ohne DirectStorage) CPU Seitig wohl 24 Cores bräuchte. RTX I/O kann diese Datenrate bewältigen und belastet dabei nur einen CPU Kern zu 50%.



Ich denke damit sollte klar sein, dass Microsoft, Sony und Nvidia/AMD alle den gleichen Ansatz verfolgen. Die Umsetzungen unterscheiden sich nur im Detail.


Wobei man trotzdem anmerken muss, dass der richtige Turbo erst mit Sampler Feedback Streaming gezündet wird. Denn da kommt zu der irrsinnig hohen Bandbreite ohne relevante CPU Last noch dazu, dass man die Menge an Daten die man streamen muss enorm reduziert, da nur noch exakt die Daten geladen werden, die aktuell benötigt werden. Das ist extrem kleinteilig möglich.

Heißt, anstatt ein dekomprimiertes Asset, sprich Rohdaten mit z.B. 100 MB größe von CPU zum VRAM zu schicken, wird durch Direct Storage nur das komprimierte Asset von SSD in den VRAM geschrieben, das meinetwegen nur 20 MB groß ist. Dank Sampler Feedback Streaming wird aber dann nicht mehr das ganze Asset benötigt, sondern nur der Teil, der aktuell sichtbar ist. Dann werden aus 20 MB vielleicht nur noch 5 MB oder je nach dem vielleicht auch nur einige KB.

Man beschleunigt das ganze Konstrukt also um mehrere Größenordnungen. Sowohl hinsichtlich Datendurchsatz als auch Effizienz. Und genau das soll es dann letzten Endes auch ermöglichen, VRAM zu sparen (Mit einem Faktor von durchschnittlich etwa 2x), indem auf diese Weise extrem aggressives Memorymanagement betrieben werden kann.

1626974191149.png

^Der letzte Satz sollte hier einige aufhorchen lassen...

1626974987439.png

^ hier muss man wohl sagen, dass der Multiplikator noch größer ist. Aktuelle Engines sind auf HDD Streaming ausgelegt und entsprechen daher wohl dem obersten Balken. Mit Optimierungen für direct Storage gilt wahrscheinlich der mittlere Balken und mit SFS ist der unterste möglich. Dazu hier das Video:


Sowie dieses Video von Sony:


Danach sollte eigentlich alles klar sein.

Für mich ist das alles die wohl spannendste Neuerung der letzten 10 Jahre.
 
Zuletzt bearbeitet von einem Moderator:
@B3nutzer

Das was Du schreibst ist schon richtig, geht aber etwas an dem vorbei was ich eigentlich gemeint habe (und auch so schreiben wollte). Du schreibst hier nur von den Grafikdaten, also Texturen, welche jetzt ohne Umweg über die CPU in den VRAM geschrieben werden können. Ich habe generell vom Laden der Daten einer Software (muss ja kein Spiel sein, im Prinzip jede Software die große Datenmengen verarbeitet) "geredet", also alle Prozessdaten die im Hintergrund laufen und gar nichts mit der "Bildschirmausgabe" zu tun haben. Und da kann das Betriebssystem mit der neuen File I/O API sehr wohl schon bessere Resultate erzielen, in dem es beim Laden der Daten die Dateizugriffe viel stärker parallelisiert und mit größeren Queues arbeitet. Deswegen wird der Vorteil auch in anderen Applikationen zu sehen sein.

Deswegen sprach ich ja konkret von den kürzeren Ladezeiten. Wenn ich ein Spiel habe, was beim Start sehr lange lädt, hat das eigentlich meistens nichts damit zu tun, das es dabei schon massiv Grafikdaten in den VRAM schaufeln muss, sondern das Spiel selber im Hintergrund erstmal in den RAM geladen wird. Und da schickt die Software ja nur Ihre Requests an die API und wie dieses das dann handelt, ist der Software ja egal. Dann kann da eine alte API dahinterstecken, die alles schön der Reihe nach macht oder eine API, die die Requests parallelisiert und gleichzeitig abarbeitet.

Was Du beschreibst, hat dann wieder andere Vorteile. Ich kann bessere Texturen benutzen, da ich sie schneller austauschen und nachladen kann. Ich kann die Texturen zerlegen und nur teilweise laden. Der VRAM der Karte kann kleiner sein, usw.

B3nutzer schrieb:
Für mich ist das alles die wohl spannendste Neuerung der letzten 10 Jahre.

Absolut! :)
 
  • Gefällt mir
Reaktionen: B3nutzer
Zurück
Oben