Grafički procesor

mini|Komponente GPU-a
**Grafički procesor, GPU**, **grafička procesna jedinica** ili **grafički čip** () jest specijalizirano elektroničko kolo dizajnirano za efikasno stvaranje slika u video bufferu (memorijsko spremište koji sadrži bitmapirane kadrove) koje su namijenjene za prikazivanje na nekom izlaznom uređaju. Grafički procesori koriste se u ugrađenim sistemima, mobilnim telefonima, ličnim računarima, radnim stanicama i igraćim konzolama. Moderni grafički procesori su vrlo efikasni u baratanju sa računarskom grafikom i obradom slika. Visoko paralelna struktura grafičkog čipa čini ih efikasnijim od centralnih procesorskih jedinica (CPU) opće namjene za algoritme koji paralelno obrađuju velike blokove podataka. U ličnom računaru, GPU može biti prisutan na grafičkoj kartici ili ugrađen na matičnu ploču, dok je kod većine savremenih CPU-ova, grafički čip ugrađen u njegovu poluprovodničku matricu.

Izraz "GPU" prvi put je koristio Sony za svoj PlayStation iz 1994. godine, a popularizovan je 1999. kada je Nvidia predstavila GeForce 256 kao "prvi GPU na svijetu". Predstavljen je kao "procesor na jednom čipu sa integrisanim pogonom za transformaciju, sječenje, osvjetljenje (T&L) i renderiranje".

## Historija 
mini|S3 Grafika VIRGEArkadne sistemske ploče koristile su specijalizovane grafičke čipove još od 1970-ih. Fujitsuov MB14241 video mjenjač korišten je za ubrzavanje crtanja sprajtova za razne arkadne igre Taita i Midwaya iz 1970-ih, kao što su *Gun Fight* (1975), *Sea Wolf* (1976) i *Space Invaders* (1978). Namco Galaxian arkadni sistem iz 1979. koristio je specijalozvani grafički hardver koji podržava RGB boju, raznobojne sprajtove i tilemap pozadine. Galaxian hardver je bio jako popularan tokom zlatnog doba arkadnih video igara, za kojeg su radili igre razni proizvođači kao Namco, Centuri, Gremlin, Irem, Konami, Midway, Nichibutsu, Sega i Taito.

NEC µPD7220 bio je prva implementacija PC grafičkog procesora u obliku jedinstvenog LSI čipa. BIo je je najpoznatiji GPU sve do sredine 1980-ih i korišten je u velikom broju grafičkih kartica. Godine 1986, Texas Instruments je objavio TMS34010, prvi potpuno programabilni grafički procesor. Mogao je pokrenuti kod opće namjene, ali imao je poseban skup namijenjen za grafiku. Između 1990 i 1992. ovaj će čip postati osnova Windows akceleratorskih kartica "TIGA".

Godine 1988. predstavljene su prve namjenske poligonalne 3D grafičke ploče u arkadnim sistemima Namco System 21 i Taito Air System. IBM-ov standard za video grafički niz (VGA) predstavljen je 1987, i imao je maksimalnu rezoluciju od 640×480 piksela. U novembru 1988. godine, NEC Home Electronics najavio je stvaranje Udruženja za standarde video elektronike (VESA) za razvoj i promociju Super VGA (SVGA) standarda kao nasljednika. Super VGA je imao rezoluciju do 800x600 piksela. S3 Graphics je 1991. predstavio je *S3 86C911*. 86C911 je bio uticajan, i mnogi su slijedili njegov primjer, pa su do 1995. svi veliki proizvođači grafičkih čipova PC-a su svojim čipovima dodali podršku za 2D ubrzanje. Tokom 1990-ih, 2D ubrzanje GUI-a nastavilo se razvijati. Dodatni aplikativni programski interfejsi (API) su predstavljeni za različite zadatke, poput Microsoftove WinG grafičke biblioteke za Windows 3.x, i kasnijeg DirectDraw interfejsa za hardversko ubrzanje 2D igara u sistemu Windows 95 i novijim.
mini|Grafička kartica Hercules 3D Prophet sa GeForce 256 grafičkim čipom.
Početkom i sredinom 1990-ih, 3D grafika u stvarnom vremenu postala je sve češća u arkadnim, računarskim i konzolnim igrama. Rani primjeri 3D grafičkog hardvera za masovno tržište bili su arkadni sistemi Sega Model 1, Namco System 22 i Sega Model 2, kao i igraće konzole 5 generacije kao što su Sega Saturn, PlayStation i Nintendo 64. Arkadni sistemi kao što su Sega Model 2 i Namco Magic Edge Hornet Simulator 1993. bili su sposobni za hardverski T&L (transformacija, sječenje i osvjetljenje) godinama prije nego što su se pojavili na potrošačkim grafičkim karticama. Neki su sistemi koristili DSP-ove za ubrzanje transformacija.

U svijetu PC-a prvi pokušaji jeftinih 3D grafičkih čipova su bili neuspješni, kao što su su S3 *ViRGE*, ATI *Rage* i Matrox *Mystique*. Ovi čipovi su u osnovi bili samo 2D ubrzivači prethodne generacije sa naknadno dodanim 3D karakteristikama.  OpenGL se pojavio početkom 90-ih kao profesionalni API za grafiku, ali prvobitno nije imao zadovoljavajuće performanse, što je omogućilo da Glide API bude dominantan na PC platformi krajem 90-ih. Međutim, vremenom je OpenGL postao standardan kada je prevazišao svoje početne probleme. DirectX je postao popularan među programerima Windows igara tokom kasnih 90-ih.

Nvidia *GeForce 256* (poznata i kao NV10) bila je prva kartica na potrošačkom tržištu koja je imala T&L hardversko ubrzanje. Nvidia je bila i prva koja je napravila čip sposoban za programiranje shadera, *GeForce 3* (NV20). Korišten u Xbox konzoli, takmičio se sa PlayStationom 2 (koji je koristio prilagođeni DSP za hardversku obradu verteksa). U oktobru 2002 ATI je predstavio *Radeon 9700* (R300) koji je bio prvi Direct3D 9.0 ubrzivač.

Sa Nvidia GeForce 8 serijom počeo je trend prema generičkom stream procesiranju, što je od grafičkog čipa stvorilo općenitiji računski uređaj. Danas paralelni GPU-ovi ulaze u domen koji je nekada pripadao samo centralnim procesorima, i njihovo korištenje u poljima mašinskog učenja, linearne algebre, statistike, 3D rekonstrukcije itd. pripada polju Općenitog računanja na GPU (GPGPU - General Purpose Computing on GPU). GPGPU bio preteča onoga što danas nazivamo računarskim shaderima (npr. CUDA, OpenCL, DirectCompute).

## Računske funkcije 
Moderni GPU-ovi koriste većinu svojih tranzistora za izračune povezane sa 3D računarskom grafikom. Pored 3D hardvera, današnji GPU-ovi uključuju osnovne 2D mogućnosti ubrzanja i framebuffer. GPU-ovi su u početku korišteni za ubrzavanje mapiranje tekstura i prikazivanja poligona, kasnije dodavanjem jedinica za ubrzanje geometrijskih izračuna poput rotacije i prevođenja verteksa u različite koordinatne sisteme. Najnovija dostignuća u grafičkim čipovima uključuju podršku programibilnih shadera koji mogu baratati verteksima i teksturama pomoću mnogih istih operacija podržanih od CPU-a, tehnikama oversamplinga i interpolacije radi smanjenja aliasinga i vrlo preciznih prostora boje. Pošto većina tih računanja uključuje matrične i vektorske operacije, inženjeri i naučnici sve češće su razmatrali upotrebu GPU-a za negrafičke proračune.

Pojavom dubokog učenja (deep learning) povećao se značaj GPU-a. U istraživanju koje je proveo Indigo, ustanovljeno je kod treniranja neuronskih mreža GPU-ovi mogu biti 250 puta brži od CPU-a. Eksplozivni rast dubokog učenja (Deep Learning) posljednjih godina pripisan je nastanku grafičkih procesora opće namjene.

### Grafički ubrzano dekodiranje videa 
Većina GPU-a napravljenih od 1995. podržava YUV prostor u boji i slojeve hardvera važnih za reprodukciju digitalnih videa, a mnogi grafički čipovi izrađeni od 2000. također podržavaju MPEG primitive kao što su kompenzacija pokreta i iDCT.

Novije grafičke kartice dekodiraju video zapise u visokoj rezoluciji na kartici, oslobađajući centralnu procesorsku jedinicu. Najčešći API za GPU ubrzano dekodiranje videa su DxVA za Microsoft Windows operativni sistem i VDPAU, VAAPI,  i XvBA za Linux i UNIX-u slične operativne sisteme. Svi mogu dekodirati video zapise kodirane sa MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4, dio 2), MPEG-4 AVC (H.264/DivX 6), VC-1, WMV3/WMV9, Xvid/OpenDivX (DivX 4) i DivX 5 kodeci.

## Oblici grafičkog čipa 
### Terminologija 
Postoje dva glavna oblika GPU-a u ličnim računarima. Svaki ima više sinonima:

* *Namjenska grafička kartica*
* *Integrisana grafika* - koja se naziva i: *dijeljeno grafičko rješenje*, *integrisani grafički procesor* (IGP) ili *ujedinjena memorijska arhitektura* (UMA).

#### Grafički čipovi po namjeni korištenja 
Većina GPU-a dizajnirana je za specifičnu upotrebu, 3D grafiku u stvarnom vremenu ili druge masovne proračune:

# Igre
#* GeForce GTX, RTX
#* Nvidia Titan X
#* AMD Radeon HD
#* AMD Radeon R5, R7, R9, RX, Vega i Navi serije
# Igranje u oblaku
#* Nvidia Grid
#* AMD Radeon Sky
# Radne stanice
#* Nvidia Quadro
#* Nvidia Titan X
#* AMD FirePro
#* AMD Radeon Pro
#* AMD Radeon VII
# Radne stanice u oblaku
#* Nvidia Tesla
#* AMD FireStream
# Umjetna inteligencija u oblaku
#* Nvidia Tesla
#* AMD Radeon Instinct
# Automatizirani automobili sa ili bez vozača
#* Nvidia Drive PX

### Namjenske grafičke kartice 
GPU-ovi najmoćnije klase obično su povezani sa matičnom pločom pomoću proširujuće kartice u nekom od utora kao što su PCI Express (PCIe) ili AGP i obično se mogu zamijeniti ili nadograditi.

Tehnologije kao što su SLI (Nvidia) i CrossFire (AMD) omogućavaju više grafičkim kartica da istodobno crtaju slike na jednom ekranu, povećavajući moć obrade.

### Integrisana jedinica za obradu grafike 
mini|231x231piksel|Pozicija integrisanog GPU-a u rasporedu sistema sjeverni/južni most
Integrisana grafika ***koristi*** dio računarskog RAM-a, a ne namjensku grafičku memoriju. Integrisana grafika se može integrisati na matičnu ploču kao dio čipseta ili na istu matricu sa CPU-om (kao što su AMD APU ili Intel HD Graphics).

### Stream procesiranje i GPU opće namjene (GPGPU) 
Ovaj koncept pretvara veliku računsku moć modernog grafičkog akceleratora za korištenje u nekim drugim poljima gdje su potrebne masivne vektorske operacije. Nvidia i AMD udružili su se sa Univerzitetom Stanford kako bi kreirali GPU klijent za računski projekat Folding@home za izračune proteinskog savijanja. GPU je u mogućnosti da izračunava do četrdeset puta brže od CPU-a.

Nadalje, GPU bazirani računari visokih performansi počinju igrati značajnu ulogu u modeliranju velikih razmjera. Tri od 10 najmoćnijih superračunara na svijetu koriste GPU ubrzanje.

Neki moderni grafički čipovi za radne stanice, poput Nvidijinog Quadra na Volta i Turing arhitekturama, imaju namjenske jezgre za aplikacije dubokog učenja bazirane na tenzorima. U trenutnoj seriji Nvidia GPU-ova ova jezgra zove se Tensor Cores. Ovi grafički čipovi imaju bolje FLOPS performanse, koje mogu dostizati i do 128 TFLOPS-a. Ova tenzorska jezgra trebala bi se pojaviti i na potrošačkim karticama koje imaju Turingovu arhitekturu, a možda i u Navi seriji potrošačkih kartica AMD-a.

### Eksterni GPU (eGPU) 
Vanjski GPU je grafički procesor smješten izvan kućišta računara. Vanjski grafički procesori ponekad se koriste i kod prijenosnih računala. Prenosnici mogu imati znatnu količinu RAM-a i dovoljno jak procesor (CPU), ali često im nedostaje moćan grafički procesor.

Generalno, jedina sabirnica za jake grafičke kartice je PCI Express koja ima značajnu propusnost podataka. Zbog toga vanjske kartice je moguće spojiti pomoću interfejsa koji podržavaju PCIe sabirnicu, kao što su ExpressCard (PCIe x1 do 5 Gbit/s) ili mini PCIe (PCIe x1 do 2.5 Gbit/s) porta ili Thunderbolt 1, 2 ili 3. (PCIe x4, do 10, 20 ili 40 Gbit/s). Ti su portovi dostupni samo na određenim sistemima prijenosnih računala.

Postoji rastući trend i interesovanje za ovakvu vrstu kartica, tako da su HP, Alienware i Razer izdali svoje verzije Thunderbolt 3 eGPU kućišta.

## Proizvođači grafičkih čipova 
*nVIDIA
*ATi Technologies (sada dio AMD-a)
*Intel
*Matrox
*S3 Graphics
*SiS
*VIA
*Fujitsu
*3Dlabs
*XGI Technology
*3dfx (sada dio Nvidije)
* Falanx Microsystems - Mali - sada ARM Norveška

## Također pogledajte 
* Računarski hardver
* Računarski monitor
* GPU keš
* Fizička procesorska jedinica (PPU)
* Tenzorska procesorska jedinica (TPU)
* Vektorski procesor
* Video card
* Video Display Controller
* Igraća konzola
* Virtualizirani GPU
* Ubrzivač umjetne inteligencije
* Sistem na čipu
* Računarska grafika
* Grafička kartica

### API 
* OpenGL API
*DirectX API za Microsoft Windows operativni sistem
* Mantle (API)
* Vulkan (API)
* Video Acceleration API (VA API)
* VDPAU
* X-Video Bitstream Acceleration (XvBA) – X11 ekvivalent DXVA za MPEG-2, H.264, i VC-1
* X-Video Motion Compensation – X11 ekvivalent za MPEG-2 video codec

### Aplikacije 
* GPU klaster
* Mathematica – ugrađena podrška za CUDA i OpenCL GPU izvršavanje
* Molekularno modeliranje na GPU
* Deeplearning4j – otvoreni kod, distribuirano duboko učenje za Javu

## Reference 
## Vanjski linkovi 
* NVIDIA - Kako GPU radi?

Kategorija:Računarska grafika
Kategorija:Grafičke kartice
Kategorija:Grafički hardver
Kategorija:GPGPU
Kategorija:Grafički procesori