A grafikus processzorok fejlődése

A grafikus processzorokat manapság teljesen általánosnak vesszük, pedig az elmúlt évek alatt igen sokszor léptek szintet. Ha megfigyeljük a fejlődést, akkor alapvetően négy nagyobb érát lehet felfedezni, illetve megemlíthető még az úgynevezett nulladik generáció is, ami lényegében csak a szimpla grafikus vezérlőkből állt, így a 3D-s gyorsítás szempontjából csak a leképzés feladatát vették át a központi processzortól, ami így ellátta a geometriai transzformációk és a megvilágítás feladatát. Ezek a chipek nem voltak túl korszerűek, de a 3D gyorsítás forradalma mégis ekkor élte virágkorát.

A 3D-s gyorsítás haszna, avagy élet nagy pixelek nélkül (a kép a Half-Life című játékból van)
A 3D-s gyorsítás haszna, avagy élet nagy pixelek nélkül (a kép a Half-Life című játékból van)

Első generáció: fixfunkciós grafika

Az első generációs grafikus processzorok 1999-től 2001-ig uralták a piacot. A legelső hardver ebben a kategóriában az NVIDIA GeForce 256 volt, ami már támogatta a fixfunkciós T&L-t (transform and lighting), azaz levette a központi processzor válláról a geometriai transzformációkkal és a megvilágítással kapcsolatos munkát. Ezek a lapkák alapvetően abban különböztek az elődöktől, hogy az elterjedt transzformációs és megvilágítási modelleket hardveresen támogatták, ami nagymértékű gyorsulást eredményezett, így komplexebb képi világ megteremtésére volt lehetőség. Hamar kiderültek azonban a korlátok, ugyanis ezek a grafikus processzorok nem voltak programozhatók, így csak azokra a modellekre lehetet építeni, amit a hardver támogatott. Szerencsére ez nem jelentett komoly problémát, de egyértelmű volt, hogy a következő lépcső a programozhatóság megteremtése.

A T&L előnyei a megvilágítás területén (a kép a No One Lives Forever című játékból van)
A T&L előnyei a megvilágítás területén (a kép a No One Lives Forever című játékból van)

Második generáció: a programozható grafika

A második generáció 2001-től 2006-ig tartott, és az első hardver ebben az érában az NVIDIA GeForce 3 volt, ami futtatta az első vertex és pixel shader programokat, ezzel a fejlesztők saját transzformációs és megvilágítási modelleket írhattak. A shader modell 1.0 és 2.0 a programozhatóság szempontjából limitált, így kevés utasítást támogattak, és a shader programok hossza is korlátozott volt, de a shader modell 3.0 alaposan kiterjesztette a lehetőségeket, így erre még ma is sok program épít.

A shaderek hatása a képminőségre (a kép a Half-Life 2 című játékból van)
A shaderek hatása a képminőségre (a kép a Half-Life 2 című játékból van)

Harmadik generáció: a magas szinten programozható grafika

A harmadik generáció 2006-tól 2012-ig tartott, és az NVIDIA GeForce 8800 GTX hozta el az előrelépést. A shader modell 4.0 ugyan nem volt drámai változás a 3.0-s megoldáshoz képest, de a hardver szempontjából komoly ugrás következett be. Nem voltak többé különálló shader egységek a különálló feladatokra, hanem az általános feldolgozókat lehetet felhasználni mindenre. Ehhez az eddigiekhez képest fejlett cache-szervezés társult fejlett ütemezéssel. A flexibilitás tehát nagyban javult, így a grafikus processzorokat aktívan elkezdték használni a fejlesztők az általános számításokra is. A shader modell 5.0 megjelenése a hardverek további javulása mellett nagy előrelépést jelentett a bonyolult grafikai effektek hatékonyabb megvalósításában.

A fotórealizmus felé közelítve (a kép a Crysis 3 című játékból van)
A fotórealizmus felé közelítve (a kép a Crysis 3 című játékból van)

Negyedik generáció: masszívan túlnőve a grafikán

A negyedik generáció még csak most kezd kibontakozni, és alapvető célja a rendszerszintű integráció elmélyítése, a grafikus processzorok teljes értékű segédprocesszorként való felhasználása bármilyen jól párhuzamosítható számításra. Ebben az érában az AMD Radeon HD 7970 mutatja az utat, és a hardver szempontjából olyan változásokat vezet be, amelyekkel azok a feladatok is hatékonyan elvégezhetők, melyek eddig a grafikus processzorok mumusainak számítottak, ideértve a például feltételes elágazásokat. A hardver logikai felépítése ennek megfelelően nagyon hasonlít egy központi processzorra, programozható skalárfeldolgozókkal, a korábbi grafikus processzorokhoz képest kiemelkedően fejlett cache-szervezéssel. A fejlesztésekkel shaderek által szabott korlátokon túllépve a C és C++ programnyelvek támogatására való törekvés a cél.

Hirdetés