1 Gedanke zu „PC DirectX DirectStorage Pläne

  1. Der Blogpost von Microsoft ist ja leider fast nur Marketing-Bullshit, keine technischen Details..

    Mir ist z.B: nicht ganz klar warum man dafür ne neue API braucht – es gibt doch schon https://en.wikipedia.org/wiki/Mmap bzw https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-mapviewoffile

    Damit wird eine Datei in den Speicherbereich des Programms „gemappt“, man kann also darauf zugreifen wie auf einen Bereich im Hauptspeicher, d.h. die Zugriffe erfolgen ohne irgendeine API, sobald der Speicher gemappt ist.
    Das gibts schon quasi immer; um die „Magie“ dahinter kümmert sich das Betriebssystem – wenn das Betriebssystem das vernünftig implementiert sehe ich nicht, wie „DirectStorage“ schneller sein soll.

    Dafür hat Carmack übrigens schon vor 7 Jahren geworben: https://twitter.com/ID_AA_Carmack/status/411264461022822400

    Auf 32bit Systemen war das schwierig für größere Dateien, der Addressbereich reichte ja nur für 4GB (und enhielt schon den vom Prozess genutzten Hauptspeicher und Speicherbereiche aus dem Kernel), mit 64bit ist das kein Problem mehr. Außerdem war es mit langsamen Festplatten ggf ungünstig darauf zuzugreifen wie auf RAM, aber mit schnellen SSDs ist das ein geringeres Problem und das ist ja der Grund für DirectStorage (ein aktueller Ryzen 3000 kann mit ca. 50GB/s auf den Hauptspeicher zugreifen, bei PCIe4 SSDs ist man eher im 5GB/s Bereich – und die Latenzen dürften auch höher sein – ist also trotzdem noch eine Größenordnung Unterschied).

    Der DirectStorage Post erwähnt irgendwo vage was von „(De)compression“ – wenn die API sowas wie mmap() mit zusätzlicher transparenter Dekompression bieten würde, wäre das tatsächlich ein Mehrwert – ob/wie das tatsächlich möglich ist weiß ich aber nicht.
    Wenn sie nix mmap()-artiges anbieten sehe ich nicht wo der Vorteil gegenüber einer eigenen Abstraktion die auf mmap()-ten Dateien arbeitet sein soll.

    Ein anderer potentieller Mehrwert wäre, wenn die GPU direkt auf Speicher von der SSD zugreifen könnte, man sich also z.B. beim Texturen laden den Umweg über die CPU sparen könnte (DMA) – aber auch das wird in dem Artikel nirgends explizit erwähnt, und ich glaube auf aktuellen PCs könnte die GPU eh nicht direkt auf NVME zugreifen da sie an unterschiedlichen PCIe Lanes hängen – das könnte auf der XBox SeX anders sein.

Schreibe einen Kommentar