• nkmedve
    #43
    A programozható hw nem jutott még arra a szintre, hogy valós időben mindent emulálni tudjon. A speciálisan erre a célra tervezet egységek még mindig sokkal gyorsabbak és kissebb helyet foglalnak. Majd mikor kijön a Larrabee 2-3. generációja, és még jó néhány GPU generáció sokkal nagyobb teljesitménnyel, akkor majd át lehet Software Renderre térni. De addig is fejlődés kell, 3 évig nem ülhetnek karbatett kézzel egyik cégnél sem. Addig tanulmányozhatják az újabb algoritmusokat, célhardverre implementálva.

    Az előző dologhoz amiről szó volt(GPGPU). Jelenleg két fejlesztési út létezik, az egyiket az NV képviseli. At ő arhitektúrájuk inkább GPGPU vonalon teljesit jobban. Most még hozzák az elvárható teljesitményt játékok alatt is, de már nagyon a határon vannak. AMD arhitektúrája inkább grafikára lett kihegyezve, abban még vannak tartalékok egy darabig. El is mondom amit tudok a különbségekről, de azzal együtt, hogy volt már szerencsém Hardware Design-al foglalkozni, nem vagyok GPU szakértő úgyhogy részletekbe nem tudok belemenni.

    AMD arhitektúrája azon alapul, hogy grafikához nem kell sokféle műveletet végezni (általában 32bites FP operandusokat használnak) de viszont rengeteg egyszerű műveletre van szükség. Ezért a Shaderek úgy vannak elrendezve, hogy egy csoportban van 4 egyszerű, és 1 komplex egység. Ilyen csoportból pedig van 160 darab az RV770ben mondjuk (összesen 800 shader proci). Ez az elrendezés grafikai számitásokban megfelelő teljesitményt ad, és nem követel rengeteg tranzisztort (kissebb a chip mérete).

    Ezzel szemben NV-nek csak komplex procijai vannak, amelyek rengeteg tranzisztort felzabálnak, de cserébe mindenféle szükséges műveletre befoghatóak. Értelemszerűen ha sok tranyó kell egy ilyen procihoz, akkor kevesebb fog a chipre férni, vagy ha fontos a teljesitmény, akkor óriási lesz a chip (GT200-GT300).
    A komplex procik miatt ez az arhitektúra alkalmasabb a GPGPU-ra, mert minden procit működésre lehet birni, de grafikai számitásokban, ahol rengeteg egyszerű műveletre van szükség, ott kezd elhasalni, mert nem tudnak annyi feldolgozó-egységet rakni a chipre amennyi kéne. A GTX280-nak úgy tudom a maximális számitási képessége 930 GFLOPS körül van. Ezt jó szoftveres támogatással általános célú számitásokra ki is tudja használni (nagy részét legalábbis).

    Egy Radeon 4890 ennél nagyobb, 1.36TFLOPS elméleti teljesitménnyel bir, de mivel ennek nagy része az egyszerű shader procikból jön össze, ezért ez a teljesitmény grafikus felhasználásnál (vagy egyszerűbb általános célú műveleteknél) mutatkozik meg. Általános számitásoknál legrosszabb esetben előfordulhat, hogy ennek az elméleti értéknek csak az 1/5-dét tudja kihasználni (ha csak a 160 darab komplex proci dolgozik), tehát 272GFLOPS-ot.

    Igy nézne ki leegyszerüsitve a dolog, de ez nagyon sarkitva van, mert nem csak 32bites műveletek vannak, hanem 64bitesek is, és ezeknél is megvan, hogy melyik chip mennyit tud ezekből elvégezni.