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

  • Abu85

    HÁZIGAZDA

    válasz do3om #8689 üzenetére

    rtuk a driverről szóló hírben is, hogy nagyrészt a gyorsulás a többletterhelés csökkenésének köszönhető. Leginkább az olcsó procikkal lehet érezni. Nálam például a Thief úgy jó 20%-ot gyorsult DX11 módban. Persze így is legalább kétszer gyorsabb a Mantle mód, de kétségtelen, hogy gyorsabb a DX11 mód.

    A gyors proci mellett az extrát az új shader fordító formálódása hozza. Ez valamivel kevesebb regiszterhasználattal rendelkezik, illetve hatékonyabban gyilkolja meg az FXC optimalizálásokat, amely az AMD egyik nagy problémája a DirectX kapcsán. Az a D3D bájtkód nem jó, amit a Microsoft fordítója fordít. Több kárt okoz, mint hasznot. De ez általánosan igaz a stream rendszerekre, mert az FXC még mindig Vec4-es kódot fordít, miközben egyedül az Intel használ ilyen hardvert. Ezzel egy szimpla befordítás egy jó 50-60%-kal lassabb kódot eredményez. Ezért van olyan shader fordító az NV és az AMD meghajtóiban, amely előbb átír bizonyos dolgokat a D3D bájtkódban és aztán fordítja be. Ez a deoptimalizálási folyamat. Ezzel visszaszereznek némi sebességet, de nem mindent. Ez az Xbox One-ból látszik is, mert ott egy olyan fordító van, amely a shadert rögtön hardverre fordítja. Így ugyanaz a shader, ugyanazon a GCN hardveren 30-40%-kal gyorsabban fut. Jelenleg az egyik futó projekt a deoptimalizálási folyamat optimalizálása, mert nagyon sok teljesítmény elvész a D3D bájtkód kreálásának agresszív optimalizálásával.

    Ezért lesz majd nagyon jó a SPIR-V és a Vulkan API, mert csak onnan tud majd nagyobb teljesítményt szerezni, hogy megengedi a fejlesztőknek az OpenCL használatát. Az erre írt fordítók sokkal hatékonyabbak, illetve a nyelv alapjai is tíz évvel újabbak, tehát az egész csomag modernebb, értsd nem a 2005-ös hardverekre tervezték. Már a SPIR-V működése is sokkal kedvezőbb a D3D bájtkódnál, mert nem Vec4-es kódot fordít, hanem a modern stream rendszerekhez igazodik, amit az NV és az AMD használ. És innen is nagyon szabad az optimalizálási irány, amíg a kód eljut a hardverhez. A Khronos teljes egészében megengedi, hogy a fejlesztők egészen a virtuális utasításarchitektúráig kontrollálhassák a fordítást. Ezzel ugyan a konzolos fordítási hatékonyságot nem érjük el, de maximum 3-5%-kal leszünk tőle elmaradva, ami a mostani 30-60%-hoz képest azért komoly előrelépés. A Vulkan egyébként elfogadja azt is, ha a fejlesztő nem is fordít a futtatási időben. A SPIR-V definiál egy olyan lehetőséget, hogy a programot offline fordítják le. Ezzel lehetőség lesz minden hardverre vISA binárist szállítani. Persze ez csak elméletben igaz, mert a hardverek virtuális utasításarchitektúrája védett, tehát a külvilág felé nincs specifikálva, de például a HSAIL igen, és számos motor SPIR-V bináris mellett szállít majd BRIG-et.

    Ezek a váltások azért nagyon fontosak, mert a PC mindig fejlődni fog, tehát idővel az architektúrákat le kell cserélni. Az adott architektúra életciklusától függ, hogy a fordítót meddig optimalizálják. Az sem mindegy, hogy a fordítót mikor írták. Akkor, amikor a hardver még csak szimulátorban létezett, vagy akkor, amikor már ott volt a mérnökök kezében. A konzol azért tud fejlődni, mert az első fordítókat még a szimulátorra írják, tehát ezek hatékonysága nem olyan jó, de minden konzolgeneráció átesik egy olyan fejlesztésen, amikor 4 évvel a megjelenés után az SDK-t lényegében lecserélik egy modernebbre. Ez baromira megéri, mert 10 éves az életciklus, és adnak még 6 olyan évet a fejlesztőknek, amikor jobban kihasználhatják a hardvert. A PC-n ilyen nem létezik, mert jóval rövidebb az életciklusa egy generációnak, és konkrétan nem történt még olyan, hogy egy architektúránál a shader fordítót újraírták. Egyszerűen azért, mert mire az újraírásnak eredménye lenne már rég egy másik architektúra van a boltok polcain. Persze a fordító ettől még a régi architektúrán sokat gyorsítana, csak az már jó eséllyel nem vásárolható meg. Az AMD csinálja meg azt először, hogy mivel egészen pontosan fél tucat frissítést terveztek a GCN-re és ennek a felénél tartanak, a következő félhez át lehet írni a fordítóinfrastruktúrát, aminek előnye lesz az előző félnél is. Egyszerűen elkezdik egy picit konzolosítani a PC-t, mert egy olyan ciklussal, amikor az architektúra 2-3 helyett 6-7 évig marad, előnyösebb kihúzni a fordítóból a benne maradt teljesítményt. Erről szólnak majd a következő branchok.
    Erre egyébként bőven át fog állni mindenki, mert abban az irányban, amerre a PC most megy előnyösebb a meglévő hardver ismerete, mint az új hardver kiadása.

    [ 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