Grafická karta

thumb|Grafický čip GeForce 6600GT
thumb|Historická grafická karta Hercules z roku 1984

**Grafická karta** (iné názvy: **grafický adaptér, videoadaptér, videokarta**) je komponent počítača, ktorý zabezpečuje zobrazenie informácií na zobrazovacej jednotke, napríklad na monitore.

Grafická karta je kombináciou (grafickej) pamäte (obvykle DRAM resp. jej modernejšie verzie DDR4, GDDR2 – GDDR6) a grafického procesora (videoprocesora). Grafický procesor spracúva informácie z centrálneho procesora (CPU), a výsledok zobrazuje na monitore prostredníctvom analógového (D-SUB), respektíve digitálneho (DVI, HDMI alebo DisplayPort) výstupu. Súčasťou karty (okrem podporných logických obvodov a radičov) je aj RAMDAC – digitálno analógový prevodník.

Niekedy (najmä u lacnejších počítačov a počítačov nevyžadujúcich grafický výkon), je grafická karta (grafický čip a podporné obvody) integrovaná na základnej doske, prípadne je priamo integrovanou súčasťou čipovej sady (chipset). Obvykle je potom grafická pamäť zdieľaná s operačnou pamäťou procesora. Takéto riešenie ide samozrejme na úkor výkonnosti v zobrazovaní grafiky, a aj na úkor výkonu samotného hlavného procesora. Moderné integrované riešenia sú však schopné nahradiť externé grafické karty s 3D akceleráciou nižšej triedy.

Dôležité parametre grafickej karty sú: rýchlosť (bodová frekvencia/riadková a snímková frekvencia), rozlíšenie (počet zobrazených bodov v oboch smeroch), farebná hĺbka (počet zobraziteľných farieb, často vyjadrené počtom bitov), veľkosť pamäte, jej typ a rýchlosť a typ zbernice prostredníctvom ktorej je karta pripojená ku základnej doske.

V minulosti výkonnosť grafických kariet určovala hlavne veľkosť pamäte ktorou karta disponovala. Bolo jasné, že grafická karta s pamäťou 32 MB je výkonnejšia ako karta disponujúca len s 16 MB pamäťou. Hlavným parametrom výkonu grafickej karty je však dnes najmä typ použitého grafického procesora (GPU) a pamäťovej zbernice. Keďže je stále pomerne bežné medzi spotrebiteľmi posudzovať výkony jednotlivých kariet na základe veľkosti ich pamäte, výrobcovia často používajú marketingové triky – karty s nižším výkonom, resp. brzdené nedostatočnou šírkou pamäťovej zbernice, sú vybavené väčšou pamäťou, než akú sú schopné pri svojej činnosti využívať, aby vznikol falošný dojem výkonnosti.

V počiatkoch znázorňovania 3D objektov v počítačovej grafike bolo požadované, aby sa trojrozmerná scéna prepočítala a zobrazila (vyrenderovala) za niekoľko minút. Dnešné grafické karty musia takýchto trojrozmerných scén zvládnuť okolo 70 za jedinú sekundu.

## Zobrazenie
Obraz viditeľný na monitore je vytváraný zložitým postupom. Aplikácia, ktorá potrebuje zobraziť nejaký objekt na obrazovke je spracovaná procesorom – CPU, ten vyšle príkaz grafickému rozhrania (grafickému) driveru, ktorý je spojnicou medzi hardvérom grafickej karty a operačným systémom. Ovládač vyšle digitálne údaje v novom formáte na renderovanie grafickej karte. Dáta sa presunú po zbernici PCIe, alebo AGP do vyrovnávacej pamäte systému (buď priamo na karte alebo v systémovej pamäti). Dáta sa spracujú – ak ide o 3D objekt ten je „dodaný“ vo forme polygónov, textúr a efektov (oheň, hmla, záblesk...). Výsledný 3D obraz vrátane efektov, trojrozmernej hĺbky obrazu, osvetlenia scény tieňov a následného pohybu je vygenerovaný v pamäti grafickej karty pomocou API a prerenderovaný do 2D obrazu na jednotlivé body. Digitálne údaje sú premenené na body, z ktorých sa skladá výsledný obraz na monitore. Pre rozlíšenie 1280 x 1024 bodov, musí grafická karta na vykreslenie jednej obrazovky vypočítať polohu a farbu pre 1 310 720 bodov. Tento proces sa opakuje 50200x za sekundu. Body sú prevedené pomocou RAMDAC na analógový signál potrebný pre analógové monitory. Pre DVI je zasielaný do monitora priamo, v digitálnej forme.

## História
Grafická karta začala písať svoju históriu v roku 1960, keď tlačiareň (čo bolo najbežnejšie výstupné zariadenie počítača) bola nahradená obrazovkou, a bolo potrebné výstupné informácie z počítača vizualizovať. Prvé grafické karty zobrazovali len v textovom režime a len monochromaticky. Prípadné obrázky sa len skladali z textových znakov.

Prvé grafické karty použilo vo svojich počítačoch IBM (prvé IBM PC) v roku 1981. Bola to karta štandardu MDA (Monochrome Display Adapter). Pracovala len v textovom režime 25x80 riadkov na obrazovke. Mala 4kB videopamäť a len jednu farbu. Karty sa postupne s nárokmi užívateľov vyvíjali, a vznikali firmy špecializujúce sa práve na grafické karty (ATI, CirrusLogic, S3, Matrox). V roku 1987 vznikol štandard VGA (Video Graphic Array – 640x480 bodov pri 256 farbách) a neskôr SVGA (Super VGA) ktorý už potreboval 2 MB pamäte a dokázal zobraziť 1024x768 bodov pri 256 farbách.

Tieto štandardy sa líšili len počtom zobrazených bodov a farieb. Evolučným skokom vo vývoji boli prvé karty označované ako 2D/3D (Matrox, Creative …). Tieto karty podporovali SVGA štandard, ale ako novinku mali zabudované 3D funkcie (podporu pre 3D zobrazenie). V 1997 firma 3dfx prišla s revolučným čipom Voodoo, ktorý obsahoval nové 3D funkcie a efekty (Mip Mapping, Z-buffering, Anti-aliasing...). Tieto karty boli doplnkom ku klasickej grafickej karte, boli s ňou prepojené, a spúšťali sa len pri programoch, ktoré ju podporovali. Tieto karty sa dali používať pre počítačové hry, ktoré sa stali hybným motorom celého tohoto odvetvia. Nastal rýchly rozvoj grafických kariet, ktorý trvá podnes. Nové karty vyžadovali stále väčší objem dát prenášaných cez systémovú zbernicu PCI, táto postupne prestala nárokom postačovať. Preto v 2002 prišiel Intel s novým portom AGP (Accelerated Graphics Port) ktorý riešil úzke miesto medzi procesorom a grafickou kartou. AGP bol prvý špecializovaný port len pre grafickú kartu.

V roku 2002 nVidia začala kontrolovať trh s grafickými kartami, prevzala firmu 3dfx a vytvorila rodinu GeForce. Nové 3D algoritmy, väčší výkon grafických procesorov, nové pamäteSDRAM, DDRAM, DDR2, DDR3 so stále rastúcimi frekvenciami a veľkosťami 8... 512 MB GRAM...

Dnes je trh s grafickými procesorami kontrolovaný firmami nVidia a AMD (bývalá ATI) s rodinami grafických čipov GeForce a Radeon. Ostatné firmy sa špecializujú na zvláštne karty pre profesionálne využitie (Matrox...)

## Komponenty
Grafická karta je doska plošného spoja obsahujúca elektronické komponenty (procesor, pamäť, radiče...) a mechanické komponenty (chladiče...).

### Grafický procesor

GPU (Graphics processing unit) je mikroprocesor optimalizovaný pre prácu s plávajúcou desatinnou čiarkou (floating point) a prednostne určený pre 2D a 3D renderovanie. Hlavnými atribútmi GPU sú frekvencia jadra (2501100&nbsp;MHz), počet pipeline (rozdelenie spracovanie jednej inštrukcie medzi rôzne časti procesora a tým aj dosiahnutie možnosti spracovávať viac inštrukcií naraz), vertex a fragment shadery prekladajúce 3D obraz charakterizovaný linkami, plochami a výplňami (vektorový obraz) do 2D obrazu reprezentovaného bodmi zobraziteľnými na 2D zobrazovacom zariadení.

GPU obsahuje radič pamäte, unifikované shadery, TMU jednotky, ROP jednotky a ďalšie.

*Unifikované shadery* Shader je mikroprogram slúžiaci na riadenie jednotlivých častí grafického reťazca grafickej karty. Používa špecializované programovacie jazyky (shader jazyky – napr. GLSL pre OpenGL, Cg alebo HLSL pre DirectX). Tento program je potom preložený prekladačom do strojového kódu grafickej karty. Každá firma má svoju vlastnú architektúru shaderov. Sú programovateľné a vďaka tomu nemusí počítať iba zobrazovateľné dáta, ale aj vedecké výpočty, šifrovanie a iné. Shadery sa rozdeľujú na niekoľko základných typov podľa toho, pre ktorú jednotku grafického reťazca sú určené. V súčasnosti patria medzi najdôležitějšie vertex, pixel a geometry shader.

*Radič pamätí* – stará sa o komunikáciu medzi grafickou pamäťou a GPU.

*TMU jednotka* (Texture mapping unit) – mapuje textúry na objekty.

*ROP jednotka* (Render Output unit) – zabezpečuje výstup dát z grafickej karty.

### Grafická pamäť

Ak je grafická karta integrovaná na základnej doske, používa pamäť RAM počítača (zdieľaná pamäť – menšia priepustnosť). Ak je pamäť na karte, tak je označená ako VRAM (Video RAM). Kapacita VRAM u moderných kariet dosahuje 4GB24 GB.  Pamäť VRAM zohráva kľúčovú úlohu pri vykresľovaní grafických detailov, ako sú textúry, tiene a osvetlenie, ktoré sú nevyhnutné pre plynulý chod hier vo vysokých rozlíšeniach. 

Pred rokom 2003 bola typicky používaná pamäť typu DDR. V súčasnosti sa v grafických kartách využívajú najmä pamäte typu GDDR5, GDDR6 a GDDR6X, pričom najnovšie modely high-end kariet už implementujú pamäť GDDR7, ktorá prináša výrazne vyššiu priepustnosť a energetickú efektivitu. Pamäte DDR2, DDR3, GDDR3 a GDDR4, ktoré sa používali v minulosti, sú už technologicky zastarané.

Obnovovacia frekvencia moderných grafických pamätí dosahuje až 21 000 MHz (napríklad pri GDDR6X). Tieto technológie umožňujú bezproblémové hranie hier vo vysokých rozlíšeniach, ako je 4K alebo 8K, a zároveň podporujú pokročilé funkcie, ako ray tracing a AI upscaling (NVIDIA DLSS, AMD FSR). Dôležitou súčasťou video pamäte zostáva Z-buffer, ktorý uchováva hĺbkové hodnoty potrebné na správne vykreslenie 3D scén. Moderné hry však často využívajú aj pokročilejšie techniky, ako depth buffers a deferred rendering, ktoré optimalizujú spracovanie grafiky a zlepšujú celkový herný výkon.

### Video BIOS
Video BIOS (firmware) je čip obsahujúci základný program ovládajúci operácie na grafickej karte, a vykonáva inštrukcie dávané grafickému procesoru z hlavného procesora. Má na starosti aj správu pamäti VRAM (časovanie, operačná rýchlosť, napätia a iné…) Niekedy je umožnený zápis do BIOSu (BIOS je odomknutý) a je možné zmeniť hodnoty napr. časovania pamätí (pretaktovanie). Táto činnosť je však potenciálne pre kartu nebezpečná – po zadaní nesprávnych parametrov hrozí jej zničenie.

### RAMDAC
Digitálno – analógový prevodník (Random Access Memory Digital-to-Analog Converter) prevádza digitálny signál z procesora grafickej karty do analógovej formy pre monitor (displej). V závislosti od použitého počtu bitov sa líši aj použitá obnovovacia frekvencia. S CRT monitormi je najpoužívanejšia frekvencia 75&nbsp;Hz. LCD panel s digitálnym vstupom už RAMDAC nevyžaduje. Prepojenie je priamo digitálne (DVI konektor, HDMI alebo DisplayPort).

### Výstupy
Na grafických kartách býva viacero konektorov slúžiacich na prepojenie karty a monitora, alebo iných prídavných zariadení.
* **SVGA (D-Sub)** – Konektor určený pre analógové VGA. Problémom pri jeho používaní je rušenie pri nekvalitných kábloch. Podpora rozlíšena do 2048×1536 (QXGA) @ 85&nbsp;Hz.
* **[[Digital Visual Interface|DVI]]** – Digitálny výstup určený pre novšie LCD a plazmové displeje. Využíva natívne rozlíšenie. Každý bod je jednoznačne určený.
* **S-Video (TV výstup)** modulovaný videosignál pre televízory, videá....
* **Kompozitné video (výstup)** kompozitný videosignál pre TV a videorekordér (Cinch konektor)
* **RGB** (5 konektorov, každá farba zvlášť + vertikálna a horizontálna synchronizácia, BNC konektory, analógový výstup pre drahšie obrazovkové monitory)
* **[[High-Definition Multimedia Interface|HDMI]]** – výstup s vysokým rozlíšením (2003) – digitálny výstup s integrovaným zvukom
* **[[DisplayPort]]** – Je navrhnutý tak, aby nahradil digitálne (DVI) a analógové (VGA) konektory v monitoroch počítačov rovnako ako v grafických kartách. Má všetky funkcie HDMI, no nepredpokladá sa, že by mal nahradiť HDMI v oblasti domácej spotrebnej elektroniky, keďže je určený predovšetkým na kancelárske a IT využitie ( možnosť pripojenia aj viaceých monitorov – eyefinity)

### Zbernica pre grafickú kartu na základnej doske

* ISA: 16 bitová architektúra, 8&nbsp;MHz, používaná od 1981, dominantná technológia v 1980.
* MCA: 32 bit, 10&nbsp;MHz. 1987, nekompatibilná s ISA.
* EISA: 32 bit, 8.33&nbsp;MHz. 1988, kompatibilná s predchádzajúcimi typami. VESA: rozšírenie ISA. 32 bit, 33&nbsp;MHz.
* PCI: 32 bit, 33&nbsp;MHz. nahradila všetky zbernice od 1993. Zaviedla rýchle dynamické prepojenie medzi zariadeniami na zbernici bez nutnosti nastavovania. Plná podpora Plug and Play (PnP; P&P).
* PCI-X zvýšila PCI na 64 bit a 133&nbsp;MHz.
* AGP: Vyčlenená len pre grafiku, 32 bit, 66&nbsp;MHz.
* PCI-Express: 2004, 2006 PCIe 2.0, 2010 PCIe 3.x, 2011 PCIe 4.x

### Chladenie
So zvyšovaním výkonu grafických kariet stúpa aj stratový výkon, a karty sa čoraz viac nahrievajú. Dnešné moderné karty dosahujú stratový výkon extrémne až 700W, preto je už vyžadované prídavné chladenie pasívnymi, vyššie rady aj aktívnymi chladičami. Pri pretaktovaní je nutné karty chladiť dodatkovým chladením vrátane chladenia pamätí. Na chladenie sa používajú pasívne chladiče z hliníka, alebo medi, obvykle tiež s prídavným ventilátorom alebo heatpipe chladenie.
Taktiež sa používa aj hybridné chladenie (kombinácia vodného chladenia a heatpipe chladenia z pridavným ventilatorom na odvod tepla).

### Napájanie
Do roku 2006 nebol so spotrebou grafických kariet vážnejší problém. So stúpajúcim výkonom však stúpla aj energetická náročnosť kariet. Niektoré karty pre PCIe dosahujú spotrebu až 250W a viac, preto potrebujú dodatočný prívod energie na kartu (prídavné napájacie konektory) prepojené priamo so zdrojom počítača. Tak isto zdroj počítača musí byť dimenzovaný na zvýšenú spotrebu.

## Grafické rozhrania (API)
API (Application Programming Interface) – rozhranie pre programovanie aplikácií. Ide o procedúry, funkcie a triedy knižnice, ktoré môže použiť programátor využívajúci knižnicu. API určuje, akým spôsobom sa funkcie knižnice budú volať zo zdrojového kódu programu. Funkcie API sú teda programové celky, ktoré programátor používa namiesto toho, aby ich sám naprogramoval. Dnes sa najviac používajú dve grafické API – OpenGL a DirectX, ktoré sú štandardizované, a programátor ich môže v softvéri použiť. Spôsob ich vykonania závisí na konkrétnom počítači, podľa jeho výkonu a podľa výkonu grafickej karty. Programu – napríklad hre už potom nezáleží na type a výkone grafického procesora, ale len na tom ktoré API karta podporuje.

Prakticky sú Direct3D a OpenGL skupiny API funkcií, ktoré vykonávajú zložité výpočty v 3D priestore. Umožňujú nízkoúrovňový prístup k 3D akcelerátoru a hardvéru vôbec, čím výrazne urýchľujú grafické operácie.
* Direct3D: Vytvorené Microsoftom roku 1996, ako komponent DirectX. Je exkluzívne určené pre prácu vo Windows. Posledná verzia je DirectX 12, väčšina počítačov v súčasnosti podporuje DirectX 9.0c.
* OpenGL: Vytvorené Silicon Graphics v roku 1990. OpenGL je voľné, multijazykové a multiplatformové (podporované viacerými operačnými systémami). Používa sa pre CAD, virtuálnu realitu, hry, vizualizácie, letecké simulátory... Je podporované aj Linuxom. Posledná verzia je OpenGL 4.2.

## Grafické techniky
Niektoré z často používaných efektov, funkcií a pojmov používaných v súvislosti s grafickými kartami.
* **Anti Aliasing**: Ide o vyhladenie hrán objektov priemerovaním výpočtu hrany objektu pri rôznom rozlíšení. Zapnutie funkcie výrazne uberie na výkone grafickej karty. Zmysel má len pri obrazovke menšej ako 17“, kde je málo bodov a hrany sú potom kostrbaté.
* **Frame buffer** – Slúži na odkladanie vyrenderovaných pixelov a textúr pre ich neskoršie použitie v zobrazovanej scéne.
* **Accumulation buffer** – Slúži na akumuláciu bodov, k operáciám s pixelami pre ich neskoršie kopírovanie do frame bufferu. Dajú sa tým dosiahnuť rôzne efekty (Motion Blur, Radial Blur...).
* **Z-buffer ** – Slúži na odkladanie hĺbky jednotlivých pixelov vo frame bufferi.
* **Stencil buffer** – Slúži ako maska pri jednotlivých operáciách s pixelmi vo frame bufferi. Dajú sa tým dosiahnuť rôzne efekty (zrkadlenie, siluety...). S ním sú preskakované objekty, ktoré sú stále v popredí.
* **T-buffer**: počíta z rôznych uhlov pohľadu viackrát rovnaký obraz a vytvorí z toho jeden obraz. Dosiahne sa tým priestorovosť, hĺbka, ostrosť pohybujúcich sa objektov.
* **Textúrovacie jednotky**: V súčasnosti spracúvajú až dve textúrové jednotky za 1 takt 1 texel (pixel s dvoma textúrovými súradnicami). Pritom sú polygóny (3D telesá) pokryté dvojrozmernými povrchmi (textúrami). Novšie čipy majú 4 textúrovacie jednotky
* **AGP-Texturing** (Execute mode): V tomto móde môže grafický čip priamo vyčítať textúry z operačnej pamäte, bez toho, aby ich musel presúvať do VRAM
* **Transformácia** – výpočet polohy, orientácie a vzhľadu objektu v priestore definovanom maticou. Objekty sú transformované Modelovacou maticou (modelview matrix) a Projekčnou maticou (projection matrix). Modelovacia matica slúži na rotáciu objektu, jeho posun od stredu/počiatku súradníc a na jeho škálovanie (zväčšovanie/zmenšovanie). Projekčná matica definuje transformáciu objektu z 3D priestoru na 2D plochu. Na transformovanie textúr slúži Textúrovacia matica (texture matrix)..
* **Trilineárne filtrovanie**: Táto funkcia zaisťuje hladký prechod medzi textúrami jedného objektu.
* **Bump Mapping**: Získava textúru s informáciami o tieňoch závislých na uhle a intenzite osvetlenia.
* **Environment-Mapped Bump Mapping**: Táto funkcia zobrazuje zrkadlenia a vlnenia na vodných hladinách.
* **Pixel Shader**, **Vertex Shader** : slúži na vytvorenie realistických povrchov (kameň, voda...) vďaka tomu, že pomáha tieňovať jednotlivé body. Stará sa o osvetlenie, atmosférické a optické efekty...
* **Realtime Shading** tieňovanie v reálnom čase: zabezpečí tieňovanie blízke reálnemu 3D zobrazeniu. Pre každý obraz sa vypočítava nový tieň.
* **Vertex** – Je to vrchol polygónu (trojuholníka, viacuholníka...). Väčšinou tri vertexy (vrcholy) definujú polygón.
* **Polygón** – Mnohouholník. Jeho vrcholy tvoria vertexy. Najčastejšie používané sú trojuholníky a štvorce. Z polygónov je vytvorená každá štruktúra objektu v 3D priestore.
* **Textúra** – Ide o obrázok (bitmapa) ktorou sa vypĺňa polygón. Imitujú vlastnosti reálnych objektov (imitácia tehál, dreva, kovu...). Na povrch objektu sa nanášajú pomocou súradníc definovaných vertexami.
* **Veľkosť textúr**: Textúry súčasných hier majú obvyklú veľkosť 256 x 256 bodov. Nové hry prichádzajú až s 2 048 x 2048 -bodovými textúrami.
* **Lighting / Light** – Osvetlenie a svetlo definované v 3D priestore. Svetlo je definované polohou zdroja, typom zdroja (bodové, rozptýlené...), časovým priebehom (konštantné, blikania...) a pod.
* **32bitová farebná hĺbka**: Trend ide v ústrety hrám, ktoré podporujú 32 bitov. Tak sa dajú priebehy farvy a svetlosti zobrazovať bez prechodov
* **HDR** – rýchle dynamické renderovanie: technika rozširujúca rozsah jasu v reálnych scénach(od svetelného zdroja po tmavé tiene).
* **Motion blur**: technika rozmazávania rýchlo sa pohybujúcich objektov
* **Depth of field**: technika rozmazávania objektov vo veľkej diaľke
* **Lens flare**: imitácia ohňa, svetelné zdroje, svetelné efekty
* **Fresnel effect**: odrazy od objektov, zrkadlenia na lesklých plochách v závislosti od uhla pohľadu
* **Specular Highlights**: Hladké povrchy s ním reflektujú zdroje svetla vo forme trblietania.
* **Texture Compression**: V tejto funkcii je používaný algoritmus pre redukciu – kompresiu textúr.
* **Anizotropné filtrovanie**: rozširuje uhol pohľadu na zobrazený objekt pri priblížení, alebo vzdialení sa od objektu.
* **Zreťazenia (pipelines)** slúžia na paralelné spracovanie príkazov. Vykoná sa viac príkazov v jednom takte.

## Budúcnosť
Dnes je jedinou hnacou silou pre neustály vývoj grafických kariet hranie počítačových hier. Iné bežné činnosti nedokážu výpočtový výkon grafických kariet využiť ani na zlomok percenta. Dnešné grafické karty majú výkon a kapacitu pamäte väčšiu, ako celé počítače len spred niekoľkých rokov. Cieľom je dosiahnuť fotorealistickú kvalitu vrátane 3D zobrazenia, aby človek z obrazu a pohybu nedokázal určiť, či ide o reálne, alebo len o vykreslené postavy a objekty. Ak sa obzrieme dozadu na doterajší vývoj grafických kariet a tempo ich vývoja je jasné, že táto budúcnosť už nie je ďaleko.

## Výrobcovia

### Výrobcovia grafických procesorov.
* AMD (kúpili ATI v 2006)
* NVIDIA
* Matrox
Pre integrované grafické karty
* Intel
* AMD
* VIA Technologies (kúpili S3 Graphics v 2001)

### Výrobcovia kariet
Výrobcovia grafických kariet s čipmi od spoločností ATI a nVidia:
* Asus  – ATI aj nVidia
* Club3D  – ATI aj nVidia
* EPoX  – ATI aj nVidia
* EVGA  – len nVidia
* Gainward  – ATI aj nVidia
* Gigabyte  – ATI aj nVidia
* HIS  – len ATI
* Inno3D – len nVidia
* Leadtek – len nVidia
* MSI  – ATI aj nVidia
* Sapphire  – len ATI
* Sparkle – len nVidia
* Xpertvision  – ATI aj nVidia

## Pozri aj
* Grafický procesor
* Monitor

Kategória:Hardvér