Mythbusting #1: A GPU-k növekedése - mennyit ér a több shader-egység?

írta: gbors, 8 éve

Bevezetés

A CPU-k piacán már hosszú évek óta nyitott kérdés, hogy a több maggal vagy a magasabb órajellel jutunk-e előrébb. Egyelőre a magasabb órajel (és a magasabb IPC) tűnik nyerni, de pl. játékok terén akár komoly változások elé is nézhetünk a DirectX 12-vel. Ugyanez a kérdés sokkal komplikáltabb a GPU-k esetében, hiszen ezekben a chipekben eleve tucatjával vannak a különféle részegységek (sőt, az ALU-k ezresével) - akár gondolhatnánk azt is, hogy ez a kérdés itt eldöntött tény. Mégis, a 2016. közepe táján esedékes új generációs VGA-król azt rebesgetik, hogy nem fog jelentősen nőni bennük a számításért felelős erőforrások száma - akár az AMD, akár az nVidia műhelyéből származó GPU-król legyen szó. Mi lehet ennek az oka? Azt ugye már régóta tudjuk, hogy az nVidia GPU-k jól skálázódnak az egységek számának növelésével, az AMD-sek meg kevésbé, tehát az AMD oldaláról logikusnak tűnik ez a lépés - ennek ellenére az nVidia is ebbe az irányba halad. Miért? Egyáltalán, helyes a fenti állítás az nVidiák skálázódásáról? A Kepler generációban bevezetett GPU Boost behozott némi bizonytalanságot a mérések kiértékelésébe, ezért míg a nominális órajelek alapján pl. a GTX 980 és a Titan X közötti különbség reálisnak tűnik, a gyakorlatban lehet, hogy mégsem olyan egyértelmű a helyzet. Érdemes ennek utánajárni.

Az adatok forrása

Nincs is egyszerűbb dolog egy ilyen tesztnél - be kell szerezni két jó drága VGA-t nVidia oldalról, kettőt AMD oldalról, hozzá egy szintén csillagászati összegbe kerülő processzort, és már mehet is a móka... vagy nem. Megvalósíthatóbbnak tűnik az a lehetőség, hogy keresek egy jól dokumentált, megbízható forrásból származó tesztet, ahol azokkal az órajelekkel mérnek, amire nekem szükségem van. Ennek az eshetőségnek sem túlzottan nagy a valószínűsége, de némi kutatás után kiderült, hogy szerencsém van - a hardware.fr két cikkében szinte minden adatot megtaláltam, amire szükségem volt. Erről a két (egyébként kiváló) írásról van szó:

Nvidia GeForce GTX 980 Ti 6 Go : la petite sœur de la Titan X en test

AMD Radeon R9 Fury X : le GPU Fiji et sa mémoire HBM en test

Nézzük akkor, milyen összefüggés mutatkozik a GPU-ban található egységek számának növekedése és az FPS-ek számának növekedése között.

nVidia Maxwell - 2560x1440

A Titan X-nél és a GTX 980-nál nincs ideálisabb páros a cikk tárgyát képező tesztre - a GM200 a funkcionális egységek terén pont 50%-kal van a GM204 felett, a memória órajelek megegyeznek, csak a core órajeleket kell összehangolni. Ez Damien tesztjében kitűnően sikerült is - a Titan X Uber-ként felcímkézett kártya intenzívebb hűtést kapott, és így a mérések alatt végig 1152MHz-en ment, míg a GTX 980 kicsit ingadozva, de majdnem pont ezt az órajelet tartotta. A lenti grafikon átlagosan 1%-ot "csal" a Titan X javára:

Elég egy pillantás az ábrára, és azonnal látszik, hogy a cikk elején felvetett default feltételezés ("az nVidia GPU-k jól skálázódnak az egységek számának növelésével") bizony egyáltalán nem igaz. Bár néhány mérést befolyásol a CPU (a Dying Light-ot és a Project Cars-t ki is vettem az "Average" trendvonalból, a 40%-os átlagos eltérés a többi 12 játékból van számolva), igazából csak két játékot látunk, ahol az 50%-nak egyáltalán a közelébe kerül a Titan X előnye, ezért a teljesen azonos órajelek esetén várható 39%-os különbség teljesen reálisnak tűnik.

Eredetileg csak ennyit terveztem megnézni skálázódás terén, de egy ilyen meglepetés után természetesen muszáj megvizsgálni, mi a helyzet a piros oldalon.

AMD GCN - 2560x1440

A fentiekhez hasonló összehasonlításra adja magát a Fury X és az R9 290X párosa, bár itt lényegesen nehezebb lesz következtetéseket levonni, két okból is:
- A két GPU nem azonos architektúrára épül, a Fijiben vannak kisebb-nagyobb optimalizációk a Hawaii-hoz képest, amiknek a hatása teljesen megjósolhatatlan
- Az egységek számának tekintetében teljes az összevisszaság - a Fiji shaderekben és textúrázókban közel 50%-kal erősebb és a sávszélessége 60%-kal nagyobb, ezzel szemben a chipek infrastruktúrája lényegében egyforma, és a ROP-ok is ugyanannyian vannak.

A hardware.fr tesztjében a Fury X fix 1050 MHz-en megy, a Sapphire 290X Tri-X OC pedig 1040-en - ezt a minimális különbséget is beleszámolva a paraméteres becslésem azt állítja, hogy a Fury X-nek átlagosan 35%-kal kellene gyorsabbnak lennie, és erre jön rá az újabb architektúrából adódó előny. Ezzel szemben a gyakorlat a következőt mutatja:

A grafikon lényegesen kevésbé rendezett, mint az nVidiás, aminek természetesen az a fő oka, hogy egyes játékoknak jobban hiányzik a ROP-kapacitás, mint másoknak. Van azonban még egy fontos tényező: a Dying Light és a Project Cars mellett további játékok is CPU-limitre futnak. Az összehasonlíthatóság miatt a trendvonalról itt is az említett két játék hiányzik, és így a Fury X átlagos előnye 26.5% az elvárt 35%+ helyett. Nem lehetne valahogy a CPU-limitet "elzavarni"?

AMD GCN - 3840x2160

... de lehetne - a cikk tartalmaz 4K méréseket is, még mindig szép stabil órajelekkel. Így fest a két kártya viszonya 4K-ban:

Azt látjuk, hogy a Dying Lightot még mindig visszafogja a CPU (ami azért elég durva), viszont a Project Cars már sokkal civilizáltabban viselkedik. Ami még érdekesebb, az az, hogy a játékok többsége felszedett 2-6% további előnyt a Fury X-szel - ezt biztosan nem lehet mind a CPU-limitációnak betudni. A Fiji GPU átlagos előnye 32% (ezúttal is a DL és a PC nélkül), ami már nem volna rossz az elvárt 35%-hoz képest - ha ugyanazon az architektúrán lenne a két kártya. Mivel azonban a Fijiben van számos újítás, a mérleg nyelve sokkal inkább abba az irányba billen, hogy az AMD is küszködik az egyre növekvő számú funkcionális egység kihasználásával.

Felmerül azonban a következő kérdés - a Maxwell is javulna 4K-ban? A zsigeri válasz persze az, hogy "biztos nem, mert az nVidia nem szereti a felbontás növelését", de miután a cikkben már sikerült egy szilárdnak hitt feltételezést megcáfolni, nézzük meg, hátha ezt is össze lehet dönteni :)

nVidia Maxwell - 3840x2160

Az utolsó grafikont kéretik minimális fenntartással kezelni - sajnos 4K-ban nem voltak Titan X Uber mérések, ezért a referencia Titan X számaiból kellett kiindulnom. Mivel a hűtésbeli rásegítés nélkül a kártya teljesen változó, legrosszabb esetben 1025MHz-es órajelen ment az Uber változat 1152MHz-éhez képest, az FPS-számokat kénytelen voltam kompenzálni, hogy értékelhető eredményt kapjak. A kompenzációhoz a referencia és a custom 980Ti órajeleit és eredményeit használtam fel, ezért az eredmény elég jó, de természetesen nem ugyanaz, mint egy mérés. Viszont ha már kompenzáltam, akkor nem az 1152MHz volt a cél-sebesség, hanem minden játékban a 980 órajele, így a Titan X itt nem szerez 1% jogosulatlan előnyt. Az eredmény:

Mythbusting on: a Titan X is növelte átlagos előnyét a 980-nal szemben, akárcsak a Fury X. Minden egyes játékban jobban elhúz a Titan X (ott is, ahol az órajelet nem kellett kompenzálni), és a különbség átlagosan 4% a Radeon 5.5%-ával szemben. Mivel a Maxwell esetében lényegesen kevesebb volt WQHD-ben a CPU-limit, ezért a WQHD -> 4K ugrás által nyert relatív sebességnövekedés a két architektúra tekintetében kb. döntetlen.

Konklúzió

Igen határozott választ kaptunk tehát a cikk elején felvetett kérdésre - sem a Maxwell, sem a GCN architektúra nem képes arra, hogy a különféle funkcionális egységek számának növelésével közel egyenes arányban növelje az egy másodperc alatt megjelenített képkockák számát. Ennek oka részben a CPU-limitáció, de ez a Maxwell esetében, ill. 4K-ban mindkét architektúrán jelentősen kisebb szerepet játszik. A fő probléma magukban a GPU-kban rejlik - és ez lehet a magyarázata, hogy a hamarosan megjelenő új generáció egyik oldalon sem hoz drasztikus növekedést akár az ALU-k, akár az egyéb funkcionális egységek számában. Várhatóan inkább az órajel emelésére, valamint az erőforráspool jobb kihasználására mennek rá - kíváncsian várom, milyen eredménnyel.

Hatalmas köszönet Damien Triolet-nek a hardware.fr-től, akinek a mérései, valamint az alapos tesztdokumentációja nélkül ez az elemzés nem jöhetett volna létre. Merci pour les excellents articles! :)