Hirdetés

Keresés

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

  • Abu85

    HÁZIGAZDA

    válasz #35434496 #7386 üzenetére

    A Microsoft SDK-jából származik. Van benne számos sample, hogy hogyan lehet a DX12 képességeit használni, és ezekre programok is vannak. Az async shader nevű program tartalmazza az aszinkron compute kihasználhatóságát, és azt már lehet mérni, akinek van SDK-ja. Persze még a mostani driverekkel, és mint mondtam az Intel tiltani fogja, mert nekik ez a képesség lassít.
    Az aszinkron compute implementálása egyébként sokat számít. A grafikus vezérlők ma pipeline-okat futtatnak egymás után. Ezért van alacsony kihasználtságuk, mert a pipeline-ok sorban érkeznek és egyszerre csak egy fut. Ha kész, akkor jön a következő, és a következő, és a következő, és egyszer elfogynak, amikor kész lesz a képkocka. Persze akkor meg lesznek újak. Az async shader annyit tesz, hogy a queuing modellt a mai soros formáról megváltoztatja párhuzamosra. A mai modernebb GPU-knak van pár compute parancslistája, és azokon fogadhatnak compute pipeline-okat. Ezeket úgy be lehet tölteni, hogy bizonyos compute pipeline-ok párhuzamosan lefussanak grafikus pipeline-ok mellett, vagyis ne soros legyen a feladat végrehajtás a grafikus vezérlőkön belül. Ehhez a DX12 azt követeli meg, hogy a hardver képes legyen egyszerre fogadni legalább egy grafikai és egy compute parancsot. Persze lehet többet is. Ezek futtatásának ütemezése a fejlesztők feladat. Itt azt kell figyelembe venni, hogy a különböző architektúrák milyen hardverállapotban képesek compute shadert futtatni. A GCN például stateless, vagyis akármi lehet a hardverállapot mindig tud mellette compute shadert futtatni. A Maxwell 2 már a pixel/ROP state-hez köti ezt, ami kedvezőtlenebb dizájn. Például, ha egy program mondjuk tesszellálás mellett akar compute pipeline-t futtatni, akkor azt a GCN-en megteheti, de a Maxwell 2 állapotváltásra kényszerül, vagyis a hardveren belül egyszerre úgy sem futhat a hull/domain shader és a compute. Erre egyébként vannak optimalizálási javaslatok, mint az, hogy a legjobb a compute feladatokat a shadow mapok generálásakor futtatni, mert akkor a Maxwell 2-n a pixel/ROP state van betöltve. Az Intel problémája pedig speciális. Ők azzal vesztenek, hogy async shaderrel az IGP órajele alacsony lesz. Egyszerűen olyan magasra fut a terhelés, hogy nem tud turbózni, így 1200 MHz helyett 300 MHz-e történő számításra kényszerül. Nyilván ez okozza a lassulást, és ezért lesz letiltva a funkció. A GCN1 hatékonysága pedig azért van a GCN2/3 mögött, mert vannak hátrányosabb tényezői, mint a lassabb kontextusváltás. Persze ez relatíve még így is nagyon gyors, csak nem annyira jó, mint amit a GCN2/3 tud.

  • tranceplanet

    addikt

    válasz #35434496 #7386 üzenetére

    Nem is kell hinni senki varázsgömbjének. Majd jönnek a DX12 játékok, vulcan, ..., ezeknél majd eldől, hogy melyik architektúrának fekszenek jobban. Amíg ez ki nem derül, addig felesleges vásárolni, kivéve annak, akinek nincs kártyája és égető.

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