Hivatalosan is bejelentette a PC-s DirectStorage API-t a Microsoft

Nem hivatalosan persze már pár napja tudni lehet, hogy érkezik, de így a biztos.

A Microsoft DirectStorage API-ja körül már az Xbox Series X bemutatója óta elég nagy a felhajtás. Ez persze nem is csoda, ugyanis a szabványos fájl I/O API-kat 30 éve tervezték, vagyis ezek még a HDD-kre voltak kialakítva, így olyan túl sok I/O műveletet amúgy sem támogatnak, elvégre a limitet sosem a szoftveres oldal jelentette. Ma viszont már igen gyors SSD-ket is lehet vásárolni, az NVMe protokoll képességei is jelentősen túlmutatnak a korábbi alternatíváknál, így időszerű volt, hogy érkezzen egy új fájl I/O API, ami végül a DirectStorage lesz, és mostantól hivatalos, hogy PC-n is elérhető lesz.

A rendszer célja tulajdonképpen kimerül abban, hogy az NVMe meghajtókhoz optimális szoftveres hátteret biztosítson. Manapság sem ritka, hogy az egyes programok a tartalmat tömörítve szállítják, majd azt a processzor segítségével valós időben kicsomagolják. A procedúra viszonylag egyszerű: a tömörített tartalom a rendszermemóriába kerül, abból készül egy kitömörített verzió, ami végül a grafikus vezérlő fedélzeti memóriájában köt ki. A modern videojáték-motorok persze ennél is továbbmennek, mivel bevezették már a streaminget, vagyis egy szoftveres memóriamenedzsment biztosítja azt, hogy az éppen használt tartalmak, ezen belül is ezek kisebb részei ott legyenek a VRAM-ban, míg a nem használt adatok a RAM-ban várják az adatmásolást.

Hirdetés

A kialakított működés kifejezetten hatékony, de vannak problémái, ugyanis az efféle streaming eljárások több I/O műveletet eredményeznek, itt pedig jönnek a korlátok. Ha a felhasználónak HDD-je van, akkor az másodpercenként olyan száznál több I/O műveletre nem nagyon ad lehetőséget, persze ez modellfüggő, de nagymértékű eltérés nincs a termékek között, illetve a fejlesztők számára célszerűbb egy olyan határt célozni, amit azért a legtöbb PC képes elérni (ez a HDD-k szintjén olyan 70 IOPS körül van). SSD esetén jobb a helyzet, elvégre az IOPS tempó kifejezetten magas szokott lenni, igazán kár, hogy az aktuális szabványos fájl I/O API-k olyan többletterheléssel dolgoznak, hogy ezek az értékek egészen ritkán közelíthetők meg. Lényegében tehát akármit is csinálunk most, vagy az I/O API vagy a HDD limitálni fog.

A Microsoft a problémára új I/O API-val reflektál, ami végre figyelembe veszi az újabb, NVMe protokollt használó SSD-k működését, és ezek képességeire építve növeli meg a másodpercenként lehetséges I/O műveletek számát. A DirectStorage számos újítást képes kihasználni az NVMe SSD-ken, többek között az NVMe parancslistákat, illetve az I/O műveletek kiadása jóval kevesebb lépcsőből megvalósítható lehet az aktuális megoldásokhoz viszonyítva. A változás jelentősen csökkenti a többletterhelést, így maga az API akár több tízezer I/O műveletet is képes lesz kezelni másodpercenként, vagyis valóban kihasználhatóvá vállnak az NVMe SSD-k.

A DirectStorage API tartalmaz még szabványosított tömörítési eljárásokat is, ezeket használva pedig elérhetővé válik, hogy magát a kitömörítést ne a CPU, hanem a GPU végezze el. Ez azért fontos váltás, mert amíg a másodpercenkénti I/O műveletek száma nem igazán haladja meg a százat, addig a processzor oldalán ennek nincs igazán nagy terhelése. Tíz-húszezer művelet esetében viszont már bizony kellene 10-20 mag is erre a feladatra. Ezzel szemben a GPU-k az efféle kódolási feladatokat viszonylag hatékonyan megoldják, így tehermentesíteni tudják a processzort. Ennek persze vannak hátrányai is, hiszen a kitömörítést maga a GPU végzi a saját memóriájában, tehát a VRAM-ra vonatkozó igény ezzel az iránnyal nőni fog, elvégre mostantól egy bizonyos ideig tárolni kell a tömörített adatot is. A kitömörített tartalmat aztán majd lehet másolgatni a VRAM és a rendszermemória között a streaming memóriamenedzsmenttől függően. Szintén lényeges tényező, hogy a több I/O művelettel nagyságrendekkel több adat keletkezik, így a GPU-kon belül jó ha kettőnél több DMA motor is ügyködik majd, ugyanis ezzel hatékonyabb lehet az aszinkron copy alkalmazása. Bár maga a rendszer elvan két DMA-val is, de négy DMA például jelentős előnyt fog jelenteni, és a terhelés növekedésével érdemes majd tovább növelni ezt a számot. Végül az is hasznos, ha az adott GPU jól kezeli az aszinkron compute-ot, hiszen a képszámítás a kitömörítés mellett fog zajlani, és utóbbi feladat egészen jól beszúrható a feldolgozás egyes, ALU-k szempontjából közel üresjárati lépcsőibe.

Magának a DirectStorage API-nak egyébként nagyon különleges hardveres igényei nincsenek. Egyrészt NVMe SSD szükséges hozzá, lehetőség szerint minél nagyobb adatátviteli tempót kínálva, míg a GPU oldalán compute shader, minimum két DMA, illetve egy régóta elérhető technológia kell, ami az NVIDIA oldalán GPUDirect, míg az AMD-nél DirectGMA néven futott az elmúlt években. Ezek biztosítják a direkt memóriamásolást a PCI Express eszközök között. Ha mind megvan, akkor már csak egy DirectStorage implementáció kell a kompatibilis hardverek számára. Ebből egyébként látható, hogy papíron elég sok grafikus vezérlő kompatibilis a Microsoft új API-jával, az elmúlt 6-7 évben kiadott VGA-k biztosan. Ugyanakkor számításba kell venni, hogy a DirectStorage várhatóan 2022-ben fog élesedni, addigra számos régi grafikus vezérlő terméktámogatása megszűnik, így az elmúlt két-három generáción túl nem valószínű, hogy készül majd implementáció.

Fontos kiemelni, hogy a DirectStorage API nem egyenlő a Microsoft Xbox Series X Velocity architektúrájával. Leginkább úgy lehetne ezt egyszerűen elmagyarázni, hogy az új generációs adatmenedzsment felét biztosítja. Nyilván egy fontos részét, tehát jó hír, hogy jön PC-re, ez is több a semminél, de a pazarló memóriahasználaton nem segít, sőt, inkább csak ront rajta. A pazarlás ugyanis abból a szoftveres memóriamenedzsmentből következik, amely allokációk szintjén foglalja le a rendelkezésre álló erőforrást, és ahhoz, hogy ez ne így legyen, szükség van egy másik technológiára, konkrétan a finomszemcsés adatmenedzsmentre. Ezt nem a DirectStorage biztosítja, hanem magába a grafikus API-ba kell majd építeni, persze némileg modernizálni kell hozzá a WDDM-et is.

A lényeg tehát az, hogy PC-s szinten a Microsoft az új technológiák felét hozza át egyelőre, a másik fele, a finomszemcsés adatmenedzsmentre majd egyszer realitás lehet, de még nem tudni, hogy mikor.

Hirdetés

Fotóznál vagy videóznál? Mutatjuk, melyik okostelefon mire való igazán!

PR Vásárlás előtt érdemes megnézni, mit kínálnak az aktuális telefonok, ha igazán ütős képeket vagy profi mozgóképeket szeretnénk készíteni.

Azóta történt

Előzmények