Grafikoak prozesatzeko unitate

thumb|GeForce 6600GT **GPU**a
**Grafikoak prozesatzeko unitatea** -ingelesez *Graphics processor unit* (**GPU**), gazteleraz *Unidad de procesamiento gráfico*-, grafikoak bizkor prozesatzeko edo koma higikorreko operazioak azkar kalkulatzeko erabiltzen den prozesagailu espezializatu bat da, PUZaren lana arintzen duena. Honela, grafikoei dagokien lan-kargaren parte handiena GPUak hartzen duenez, PUZak beste kalkulu mota batzuetarako errekurtso gehiago erabil ditzake.

**GPU**ak sistema txertatuetan, sakelako telefonoetan, ordenagailu pertsonaletan, lan-estazioetan eta bideo-joko kontsoletan erabiltzen dira. Ordenagailu pertsonaletan, **GPU**a txartel grafikoan aurkitu daiteke, edo txartel nagusian txertatua.

**GPU** modernoak oso eraginkorrak dira konputagailuko grafikoak manipulatu eta irudiak prozesatzen, eta daukaten estruktura paraleloagatik, erabilpen orokorreko PUZak baino eraginkorragoak dira datu-bloke handiak paraleloan prozesatzen diren algoritmoak lantzeko. GPU batzuetan, haren integratutako zirkuitoan (*die*) erantsita daude. Ezinbesteko tresneria da azkenaldian arrakasta handiak lortu dituzten neurona-sare artifizialak inplementatzeko.

70eko hamarkadan, "GPU" terminoak grafikoak prozesatzeko unitatea esan nahi zuen hasiera batean, eta programagarria zen prozesatze unitate bat deskribatzen zuen, PUZaren menpe ez zegoena eta grafikoen manipulazioa eta irteerako datuez arduratzen zena. Geroxeago, 1994an, Sony-k Toshibak diseinatutuako PlayStation kontsolaren GPUa zuzentzeko erabili zuen terminoa.  1999an bilakatu zen famatua terminoa, Nvidia-ak eraginda, *GeForce 256*-a merkataratu zuenean "munduko lehen GPU" izena ezarriz. Honela deritzo zioten: "Transformatutako, arindutako eta errenderizatutako motorrak integratuta zituen txip bakarreko prozesadorea". Azkenik, 2002an, *Nvidia*-ren aurkari zen *ATI Technologies-*ek VPU(Visual Processing Unit) terminoa asmatu zuen *Radeon 9700*-a argitaratzerakoan.

Moore-ren Legeak dioenaren arabera 18-24 hilabeteetan zirkuitu integratu baten transistore kopurua bikoiztera iristen dela esan daiteke; GPUren kasuan legeak esaten duena baino kantitate handiagoan handitzen da. Azken 15 urtetan prozesamendu grafikoaren eboluzioak hazkunde ikaragarria izan du. Gaur egungo konputagailu eta bideo-jokoen bidezko animazioak duela 20 urteko mentalitatearekin pentsaezinezkoa zen.
## Historia 
GPU modernoak 1970 eta 1980 hamarkaden amaierako txip grafiko monolitikoen ondorengoak dira. Txip horiek BitBLT euskarria zuten, sprite-formakoa (baldin eta euskarri hori soilik zuten), eta normalean ez zuten irudiak marrazteko euskarririk. GPU batzuek hainbat eragiketa egin zitzaketen pantaila-zerrenda batean(*display*), eta DMA erabil zezaketen prozesadore anfitrioiaren karga murrizteko; adibide goiztiar bat Atari 800en eta Atari 5200en erabilitako ANTIC koprozesadorea da. PCrako eta lan-estazioetarako txartel grafiko askok seinale-digital prozesadoreak erabiltzen zituzten (DSP, ingelesezko siglak), hala nola Texas Instruments-en TMS340 seriea, marrazketa-funtzio azkarrak ezartzeko, eta laser inprimagailu askok "PostScript" (GPUren kasu berezi bat) irudiak ekortzeko prozesadorea zuten RISC prozesadore batean, AMD 29000 baten antzekoa dena.

## PUZ vs GPU 
Konputagailu generiko batean PUZa GPU batekin ordezkatzerik ez badago ere, gaur egun GPUak oso ahaltsuak dira, eta PUZ zahar baten erloju-maiztasuna ere gainditu dezakete (1,5 gigahertzio baino gehiago). Baina GPUen potentzia eta duela gutxi garatutako erritmo bizkorra bi faktoreren ondorio dira. Lehenengo faktorea GPUen espezializazio garatua da; izan ere, zeregin bakar bat garatzeko pentsatuta daudenez, diseinuan silizio gehiago erabil daiteke lan hori modu eraginkorragoan egiteko. Adibidez, gaur egungo GPUak koma flotatzaileko(Floating point) balioekin kalkulatzeko optimizatuta daude, 3D grafikoetan nagusi direnak.

Bestalde, aplikazio grafiko askok paralelotasun maila handia dute berez, haien kalkulu-unitate nagusiak (erpinak eta pixelak) guztiz independenteak baitira. Beraz, estrategia ona da GPUetan indar gordina (brute force) erabiltzea denbora berean kalkulu gehiago osatzeko. GPUren egungo ereduek ehunka *shader* prozesadore bateratu izan ohi dituzte, eta horiek *vertex shader*, *pixel shaders* edo *fragment shaders* gisa jarduteko gai dira. Hala, 1-1,9 GHz inguruko erloju-maiztasuna (gaur egun, potentzia handiagoko GPUetan erabiltzen den estandarra) oso txikia da PUZek eskaintzen dutenarekin alderatuta (3.8-5 GHz, modelo ahaltsuenetan, ez dira nahitaez eraginkorrenak), kalkulu-potentzia askoz handiagoa da paraleloko arkitekturari esker.

PUZarekin duen desberdintasun handienetako bat bere arkitektura da. Prozesadore zentralak ez bezala, von Neumann-en arkitektura baitute, GPUa eredu zirkulatzailean (Modelo Circulante) oinarritzen da. Eredu horrek erraztu egiten du prozesu paraleloa eta GPUk bere zereginetarako duen banaketa handia.

## GPU Arkitektura 
GPU bat oso segmentatua dago, horrek esan nahi du unitate funtzional asko dituela. Unitate funtzional horiek bitan bana daitezke nagusiki: erpinak prozesatzen dituztenak eta pixelak prozesatzen dituztenak. Beraz, GPUk erabiltzen dituen unitate nagusiak erpina eta pixela dira. Gainera, eta ez garrantzi gutxiagorekin, memoria dago. Azkartasunagatik nabarmentzen da, eta zeregin garrantzitsua izango du erabiltzen diren eragiketen eta testuren tarteko emaitzak gordetzeko orduan.

Hasieran, GPUari erpin gisa iristen zaio PUZaren informazioa. Erpin horiek jasotzen duten lehen tratamendua *vertex shader*-en egiten da. Hemen, irudien errotazioa edo mugimendua bezalako transformazioak egiten dira. Ondoren, ikusiko den erpin horien zatia definitzen da (*clipping*), eta erpinak pixel bihurtzen dira rasterizazio-prozesuaren bidez. Etapa horiek ez dute karga garrantzitsurik GPUrentzat.

Txip grafikoaren botila-lepo(bottleneck) nagusia hurrengo urratsean dago: *pixel shader*rean. Hemen pixelei dagozkien eraldaketak egiten dira, hala nola texturen aplikazioa. Hori guztia egin denean, pixelak cachean gorde baino lehen, *antialiasing*, *blending* eta laino efektua bezalako efektuak aplikatzen dira.

Errenderizatuaren irteera-unitateak izeneko beste unitate funtzional batzuek (ROP, *raster operations pipeline*) cachean gordetako informazioa hartzen dute eta pixelak prestatu egiten dituzte, ikusteko. Efektu batzuk aplikatzeaz ere arduratu daitezke. Ondoren, fotogramen ilaran (buffer) gordetzen da irteera. Orain bi aukera daude: pixel horiek zuzenean hartzea monitore digital batean irudikatzeko, edo horietatik seinale analogiko bat sortzea monitore analogikoetarako. Azken kasu hori bada, DAC(Digital-to-analog_converter) batetik pasatu behar dute, pantailan bistaratzeko.
## GPU Motak 
### Terminologia 
Ordenagailu pertsonaletan, GPUren bi forma nagusi daude. Bakoitzak sinonimo asko ditu:

* *Dedicated graphics card* - beste izen bat, *discrete*
* *Grafiko integratuak,* beste izen batzuk: *soluzio grafiko partekatuak*, *prozesadore grafiko integratuak* (IGP) edo *memoria bateratuko arkitektura* (UMA).

### Erabilitako(*Dedicated*) txartel grafikoa 
Klaserik ahaltsueneko GPUak txartel nagusiarekin lotu ohi dira hedapen-txartel baten bidez, hala nola, PCI Express (PCIe) edo *Accelerated Graphics Port* (AGP). Oro har, erraz alda edo egunera daitezke, txartel nagusia eguneratzea jasateko gai dela pentsatuz. Txartel grafiko gutxi batzuek osagai periferikoen interkonexio-artekak (PCI) erabiltzen jarraitzen dute, baina banda-zabalera hain dago murriztua, PCIe edo AGP arteka ez dagoenean bakarrik erabiltzen direla.

Dedikatutako GPU bat ez da nahitaez erauzgarria, eta ez da lotzen txartel nagusiarekin modu estandarrean. "Dedikatu" terminoak adierazten du dedikatutako txartel grafikoek haien erabilpenera zuzendutako RAM memoria dutela, ez dedikatutako GPU gehienak erauzgarriak direla. Gainera, RAM hori bereziki hautatuta egon ohi da txartel grafikorako aurreikusita dagoen serieko lan-kargarako (ikus GDDR). Batzuetan, GPU dedikatuak, *diskretuak* dituzten sistemei "DIS" deritze, "UMA" sistemen kontrakoa (ikus hurrengo atala). Ordenagailu eramangarrietarako erabiltzen diren GPU dedikatuak arteka ez-estandar baten bidez konektatzen dira askotan, tamaina- eta pisu-mugak direla eta. Ataka horiek PCIe edo AGP gisa har daitezke *host* interfaze logikoari dagokionez, nahiz eta antzeko pieza fisikoekin trukagarriak ez izan.

Nvidiako SLI, NVLink eta AMDko CrossFire teknologiei esker, zenbait GPUk aldi berean irudiak marraz ditzakete pantaila bakar baterako, eta horrek igo egiten du grafikoetarako prozesatze-potentzia.Teknologia horiek, ordea, gero eta urriagoak dira, joko gehienek ez baitituzte erabat erabiltzen GPU anitzak, erabiltzaile gehienek ezin dituzte eskuratu.

GPU anizkoitzak erabiltzen jarraitzen dituzte superordenagailuetan (*Summit*en bezala), bideoak azeleratzeko lan-estazioetan (aldi berean zenbait bideo prozesatzea) eta 3D errenderizatuan, efektu bisuletarako eta simulazioetarako eta IAn garapena agudotzeko. Nvidiako lerrokadurako DGXen lan-estazioetan eta zerbitzarietan, Tesla konpaniaren GPUen eta Intelek laster garatuko duen Ponte Vecchino GPUaren kasuan adibidez.

### Integratuko Grafikoak prozesatzeko unitate 
*Integratuko Grafikoak prozesatzeko unitate*ak (IGPU), *grafiko integratuek*, *soluzio grafiko partekatuek*, *Integratuko Grafikoak prozesadoreak* (IGP) edo *memoria bateratuko arkitekturak* (UMA) ordenagailuaren sistemaren RAM memoriaren zati bat erabiltzen dute, dedikatutako grafiko memoria beharrean. IGPak txartel nagusian txip-bildumaren zati gisa (northbridge), edo die-ean(zirkuitu integratua) bertan integratuta egon daitezke CPUarekin (AMDren APUa edo Intelen HD grafikoak). Txartel nagusi batzuetan, AMDren IGPek dedikatutako albo-artekaren memoria erabil dezakete. Errendimendu handiko memoria duen bereizitako bloke finkoa da, eta GPUak erabiltzeko dedikatua. 2007. urtearen hasieran, grafiko integratuak zituzten ordenagailuek PCen bidalketa guztien %90 osatzen zuten. Kostu txikiagoa dute dedikatutako grafikoen prozesamenduak baino, baina ez dira hain gai. Historikoki, prozesadore integratua desegokitzat jotzen zen 3Dko jokoetan aritzeko edo grafiko intentsitate handiko programak egiteko, baina programa ez hain intentsiboak egin zitzakeen, hala nola Adobe Flash. Hala ere, prozesadore grafiko integratu modernoak, hala nola AMDren Prozesamendu Azeleratuko Unitatea eta Intelen HD grafikoak, ahalegin txikiko 2D grafikoak edo 3D grafikoak eta askoz gehiago erabiltzeko gai dira.

GPUren kalkuluak oso intentsiboak direnez oroimenean, prozesamendu integratua sistemaren CPUarekin lehiatzen ari da nahiko RAM mantsoarekin, gutxieneko bideo-memoria baitu, edo ez dedikatua.IGPek 29,856 GB/s-ko memoria-banda izan dezakete sistemaren RAMetik; txartel grafiko batek, berriz, 264 GB/s-ko banda-zabalera izan dezake RAMaren eta GPUaren nukleoaren artean. Memoria-busaren banda-zabalera horrek mugatu egin dezake GPUren errendimendua, nahiz eta kanal anitzeko oroimenak urritasun hori arindu dezakeen Integratutako txip grafiko zaharrenek ez zuten transformaziorik eta argiztapenik hardware bidez, baina berrienek barne hartzen dute.

### Prozesamendu grafiko hibridoa 
GPU klase berri honek grafiko integratuekin eta gama baxuko ordenagailuekin (mahai gaineko edo eramangarri) lehiatzen du. Inplementazio ohikoenak ATIren HyperMemory eta Nvidia-ren TurboCache dira.

Txartel grafiko hibridoak integratuak baino garestiagoak dira, baina ohiko GPUak baino askoz merkeagoak. Hauek memoria sistemarekin partekatzen dute eta memoria-cache txiki bat dute, RAM sistemaren latentzia altua konpentsatzeko. PCI Expressen baitako teknologiek hau posible egin dezakete. Soluzio hauek, batzuetan, RAM kantitate handiekin iragartzen badira ere, honek sistemaren memoriarekin zenbat partekatu daitekeen adierazten du.

### Kanpoaldeko (*External*) GPU (eGPU) 
Kanpoko GPUa ordenagailuaren txasitik kanpo kokatutako prozesadore grafikoa da, disko gogor eramangarri baten antzera. Batzuetan ordenagailu eramangarriekin kanpoko prozesadore grafikoak erabiltzen dira. Ordenagailu eramangarriek RAM kopuru handia eta CPU nahikoa indartsua izan ditzakete, baina askotan ez dute prozesadore grafiko indartsurik, horren ordez energia aldetik eraginkorrago diren txip grafikoak erabiltzen dituzte. Txip grafiko horiek gehienetan ez dira zeregin grafiko intentsibo batzuetarako behar bezain indartsuak, hala nola bideoak editatzeko, bideo jokoak jolasteko edo 3D animaziorako.

Hori dela eta, kasu batzuetan komenigarria izaten da eGPU bat konektatzeko bus bat izatea ordenagailu eramangarriak. PCI Express da horretarako erabiltzen den bus bakarra. Portu ezberdinak erabil daitezke, adibidez, ExpressCard edo Thunderbolt. Portu horiek ordenagailu eramangarri jakin batzuetan soilik daude eskuragarri eta GPUarekin komunikatzeko bakarrik erabiltzen dira. eGPUak bere elikatze iturria (PSU) du, GPU boteretsuek ehunka watt kontsumitzen dituzte erraz.

## Erreferentziak 
## Ikus, gainera 
## Kanpo estekak 
* Nvidia GeForce GTX, RTX
* Nvidia Tesla
* AMD FirePro
* AMD Radeon Instinct
* Nvidia Titan