Grafički procesor

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.https://www.computer.org/publications/tech-news/chasing-pixels/Famous-Graphics-Chips-IBMs-professional-graphics-the-PGC-and-8514A/Famous-Graphics-Chips-TI-TMS34010-and-VRAM 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.3dfx Glide API 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,"Linear algebra operators for GPU implementation of numerical algorithms", Kruger and Westermann, International Conf. on Computer Graphics and Interactive Techniques, 2005 statistike,"ABC-SysBio—approximate Bayesian computation in Python with GPU support", Liepe et al., Bioinformatics, (2010), 26:1797-1799  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."A Survey of Techniques for Optimizing Deep Learning on GPUs", Mittal et al., J. of Systems Architecture, 2019

 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