Hirdetés

Új hozzászólás Aktív témák

  • Abu85

    HÁZIGAZDA

    válasz FLATRONW #15380 üzenetére

    Nem jelent problémát. Röviden létezik a WCCFtech/BitAndChips és a valóság. Amíg ezek az oldalak képtelenek megérteni, hogy az async compute még csak nem is egy D3D12-es fícsőr, addig azt is felesleges elvárni tőlük, hogy megfelelő helyiértéken kezeljék ezeket a "saját forrásból származó" híreszteléseket.

    Nagyon sokan, nagyon sokszor leírták nekik, hogy olyan, hogy async compute nem igazán van. A D3D12-nek ez a funkciója a multi-engine, amit kötelező minden implementációnak támogatni. Olyan nincs, hogy valaki nem támogatja. Azt az implementációt a Microsoft egész egyszerűen nem fogadja el. Konkrétan ahhoz vezet az egész, hogy az alkalmazás nem fog elindulni egy multi-engine-t nem támogató hardveren. És nagyjából ez az, ami számít. Nincs tovább, kész, pont. A programozónak a feladata, hogy a multi-engine implementációkra írjon megfelelő kódot, amit aztán a DXKG, az UMD és az OS minden hardveren megfelelően futtat. Akár az is opció, hogy maga a kód single-engine legyen, vagyis a program egyszerűen direkt kikerüli a DXKG-t és az UMD-t, de ez azért nem ajánlott, mert ilyenkor a parancsok betöltéséért az OS felel, ami jó dolog a grafikai futószalagoknál, de nagyon rossz dolog a copy és a compute futószalagoknál. Emiatt a single-engine kódot a Microsoft csak nagyon indokolt esetben ajánlja, és csak device ID-hez kötve, mert lehet, hogy pár hónap múlva módosítanak az OS betöltőmodulján, amit nem terveztek arra, hogy normálisan kezelje a copy és a compute futószalagokat. Ilyen esetben például egy OS módosítás futtathatatlanná teheti az alkalmazást a single-engine kódot kapó hardvereken. Többek között ezért is használ mindenen multi-engine kódot a Rise of the Tomb Raider, a Hitman és az Ashes of the Singularty az aktuális verzióra vonatkozóan. Egyedül a Gears of War: Ultimate Edition aminek két kódútja van, egy default a egy csomó hardverre, és egy single-engine az Intel Gen9-re, illetve az NVIDIA Maxwell2-re. De ezek a multiadapter beépítése után le lesznek cserélve a default kódra, mert nem jó dolog nyitva hagyni annak a lehetőségét, hogy ezeken a hardvereken egy D3D frissítéssel futtathatatlanná váljon az alkalmazás.
    Az async compute és async copy magából a multi-engine kódból dolgozik, és direkten semmi köze a D3D12-höz, de közvetve nyilván a DXKG-n és az UMD-n keresztül működik. Ezért aktív például az összes DX12-es játékban, mert csak az eleve megkövetelt multi-engine kód kell a működéséhez és nem valami nagyon specifikus, komoly szaktudást igénylő, hónapokig tartó programozói munka. És itt jön a lényeg. Maga az async compute és az async copy leginkább arra való, hogy a hardverben kitöltse az idle buborékokat. A gyorsulás mértéke is attól függ minden kódnál, minden hardver esetében, hogy az adott kóddal és adott hardver párosításával mennyi idle buborék maradt, amelyeket potenciálisan le lehet fedni. Szóval a média egy totális tévúton van azzal kapcsolatban, hogy igazából ez az egész hogyan működik. Ez jó táptalaj a szenzációhajhászásnak is.

    Hosszabb távon egyébként a multi-engine egy nagyon fontos funkció, mert ahhoz, hogy a GPU-k a jövőben skálázódjanak egyre inkább úgy kell őket tervezni, hogy egyre több szálon dolgozzanak, amitől persze nőhet az idle buborékok száma és mérete is, amelyet a multi-engine funkció fog kezelni. A Microsoft pedig azért ennyire erőszakos ezzel a funkcióval kapcsolatban, mert látják, hogy a multi-engine kód bizonyos hardvereken nem hatékony, holott a hardver amúgy képes lenne bizonyos mértékű aszinkron végrehajtásra. Tehát ők ezt nagyon alaposan átrágták és úgy alakították ki a specifikációkat, hogy kiválasztottak a jelenlegi hardverfelhozatalból egy dizájnt, amit jónak tartanak (ez a GCN), és arra írtak egy követelményrendszert, hogy az Intel és az NVIDIA azt lemásolhassa, és a jövőben érkező hardvereik már a GCN-hez hasonlóan működhessenek. Tehát amikor elérjük azt az időt, amikor az általános skálázódás érdekében a hardverek egyre nagyobb problémamegoldásra lesznek tervezve, akkor a multi-engine funkció a ma szigorúnak tartott specifikációk miatt nem engedi, hogy a piac beleessen a potenciális limitációkba.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

Új hozzászólás Aktív témák