Grafički procesor

specijalizirano električno kolo; grafički ubrzivač

Grafički procesor, GPU, grafička procesna jedinica ili grafički čip (engleski: graphics processing unit) 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 se koriste 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 opće namjene (CPU) 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.[1]

Komponente GPU-a

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".[2] Predstavljen je kao "procesor na jednom čipu sa integrisanim pogonom za transformaciju, sječenje, osvjetljenje (T&L) i renderiranje".[3]

Historija

uredi
 
S3[mrtav link] Grafika VIRGE

Arkadne 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).[4][5][6] Namco Galaxian arkadni sistem iz 1979. koristio je specijalozvani grafički hardver koji podržava RGB boju, raznobojne sprajtove i tilemap pozadine.[7] 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.[8][9]

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.[10] 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[11] i Taito Air System.[12] 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.[13] S3 Graphics je 1991. predstavio je S3 86C911.[14] 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.[15][16] 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.

 
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.[17][18] 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.[19] 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č.[20]

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,[21] statistike,[22] 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

uredi

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 GPU-a opće namjene.[23]

Grafički ubrzano dekodiranje videa

uredi

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

uredi

Terminologija

uredi

Postoje dva glavna oblika GPU-a u ličnim računarima. Svaki ima više sinonima:[24]

  • 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

uredi

Većina GPU-a dizajnirana je za specifičnu upotrebu, 3D grafiku u stvarnom vremenu ili druge masovne proračune:

  1. Igre
  2. Igranje u oblaku
    • Nvidia Grid
    • AMD Radeon Sky
  3. Radne stanice
  4. Radne stanice u oblaku
  5. Umjetna inteligencija u oblaku
  6. Automatizirani automobili sa ili bez vozača

Namjenske grafičke kartice

uredi

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

uredi
 
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)

uredi

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.[25][26]

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.[27]

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.[28] Ovi grafički čipovi imaju bolje FLOPS performanse, koje mogu dostizati i do 128 TFLOPS-a.[29] 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.[30]

Eksterni GPU (eGPU)

uredi

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.[31][32]

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.[33][34][35]

Proizvođači grafičkih čipova

uredi

Također pogledajte

uredi

Aplikacije

uredi

Reference

uredi
  1. ^ Denny Atkin. "Computer Shopper: The Right GPU for You". Arhivirano s originala, 6. 5. 2007. Pristupljeno 15. 5. 2007.
  2. ^ "NVIDIA Launches the World's First Graphics Processing Unit: GeForce 256". Nvidia. 31. 8. 1999. Arhivirano s originala, 12. 4. 2016. Pristupljeno 28. 3. 2016.
  3. ^ "Graphics Processing Unit (GPU)". Nvidia. Arhivirano s originala, 8. 4. 2016. Pristupljeno 29. 3. 2016.
  4. ^ "mame/8080bw.c at master 路 mamedev/mame 路 GitHub". GitHub. Arhivirano s originala, 21. 11. 2014.
  5. ^ "mame/mw8080bw.c at master 路 mamedev/mame 路 GitHub". GitHub. Arhivirano s originala, 21. 11. 2014.
  6. ^ "Arcade/SpaceInvaders – Computer Archeology". computerarcheology.com. Arhivirano s originala, 13. 9. 2014.
  7. ^ "mame/galaxian.c at master 路 mamedev/mame 路 GitHub". GitHub. Arhivirano s originala, 21. 11. 2014.
  8. ^ "mame/galaxian.c at master 路 mamedev/mame 路 GitHub". GitHub. Arhivirano s originala, 21. 11. 2014.
  9. ^ "MAME - src/mame/drivers/galdrvr.c". archive.org. Arhivirano s originala, 3. 1. 2014.
  10. ^ 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
  11. ^ "System 16 - Namco System 21 Hardware (Namco)". system16.com. Arhivirano s originala, 18. 5. 2015.
  12. ^ "System 16 - Taito Air System Hardware (Taito)". system16.com. Arhivirano s originala, 16. 3. 2015.
  13. ^ Brownstein, Mark (14. 11. 1988). "NEC Forms Video Standards Group". InfoWorld. 10 (46). str. 3. ISSN 0199-6649. Pristupljeno 27. 5. 2016.
  14. ^ "S3 Video Boards". InfoWorld. 14 (20): 62. 18. 5. 1992. Arhivirano s originala, 22. 11. 2017. Pristupljeno 13. 7. 2015.
  15. ^ "What the numbers mean". PC Magazine. 12: 128. 23. 2. 1993. Arhivirano s originala, 11. 4. 2017. Pristupljeno 29. 3. 2016.
  16. ^ Singer, Graham. "The History of the Modern Graphics Processor". Techspot. Arhivirano s originala, 29. 3. 2016. Pristupljeno 29. 3. 2016.
  17. ^ "System 16 - Namco Magic Edge Hornet Simulator Hardware (Namco)". system16.com. Arhivirano s originala, 12. 9. 2014.
  18. ^ "MAME - src/mame/video/model2.c". archive.org. Arhivirano s originala, 4. 1. 2013.
  19. ^ 3dfx Glide API
  20. ^ Søren Dreijer. "Bump Mapping Using CG (3rd Edition)". Arhivirano s originala, 18. 1. 2010. Pristupljeno 30. 5. 2007.
  21. ^ "Linear algebra operators for GPU implementation of numerical algorithms", Kruger and Westermann, International Conf. on Computer Graphics and Interactive Techniques, 2005
  22. ^ "ABC-SysBio—approximate Bayesian computation in Python with GPU support", Liepe et al., Bioinformatics, (2010), 26:1797-1799 "Archived copy". Arhivirano s originala, 5. 11. 2015. Pristupljeno 15. 10. 2010.CS1 održavanje: arhivirana kopija u naslovu (link)
  23. ^ "A Survey of Techniques for Optimizing Deep Learning on GPUs", Mittal et al., J. of Systems Architecture, 2019
  24. ^ "Help Me Choose: Video Cards". Dell. Arhivirano s originala, 9. 9. 2016. Pristupljeno 17. 9. 2016.
  25. ^ Darren Murph. "Stanford University tailors Folding@home to GPUs". Arhivirano s originala, 12. 10. 2007. Pristupljeno 4. 10. 2007.
  26. ^ Mike Houston. "Folding@Home - GPGPU". Arhivirano s originala, 27. 10. 2007. Pristupljeno 4. 10. 2007.
  27. ^ "Top500 List - June 2012 | TOP500 Supercomputer Sites". Top500.org. Arhivirano s originala, 13. 1. 2014. Pristupljeno 21. 1. 2014.
  28. ^ "Tensor Cores in NVIDIA Volta". Nvidia. Nvidia. Pristupljeno 16. 8. 2018.
  29. ^ Smith, Ryan. "NVIDIA Volta Unveiled: GV100 GPU and Tesla V100 Accelerator Announced". AnandTech. AnandTech. Pristupljeno 16. 8. 2018.
  30. ^ Hill, Brandon. "AMD's Navi 7nm GPU Architecture to Reportedly Feature Dedicated AI Circuitry". HotHardware. HotHardware. Arhivirano s originala, 17. 8. 2018. Pristupljeno 16. 8. 2018.
  31. ^ "eGPU candidate system list". Tech-Inferno Forums.
  32. ^ Neil Mohr. "How to make an external laptop graphics adaptor". TechRadar. Arhivirano s originala, 26. 6. 2017.
  33. ^ "OMEN Accelerator | HP® Official Site". www8.hp.com. Pristupljeno 11. 12. 2018.
  34. ^ "Alienware Graphics Amplifier | Dell United States". Dell (jezik: engleski). Pristupljeno 11. 12. 2018.
  35. ^ "Razer Core X - Thunderbolt™ 3 eGPU". Razer (jezik: engleski). Pristupljeno 11. 12. 2018.

Vanjski linkovi

uredi