Ako funguje grafická karta. Určené pre stredné školy

Grafická karta je komponent počítača, ktorý počíta grafické operácie v hrách, ale môže slúžiť k výpočtom alebo na rôzne pracovné činnosti. Okrem výpočtových funkcií má aj jednoduchšiu úlohu – zabezpečuje samotný obrazový výstup na monitor, ktorý sa pripája k výstupu grafickej karty. Túto úlohu môže mať aj GPU integrované v procesore (alebo ešte predtým čipovej súprave). My sa ale budeme zaoberať samostatnými grafickými kartami.

Výpočtové jednotky

GPU je procesor fungujúci na princípe vysoko paralelného spracovávania inštrukcií. Preto sa skladá z viac opakujúcich sa výpočtových jednotiek. GPU Nvidia majú tieto výpočtové jednotky označované ako SM (Streaming Multiprocessor), pri GPU AMD sa označujú ako CU (Compute Unit) alebo WGP (Workgroup Processor), pri GPU Intel zase Xe Core.

Tieto výpočtové jednotky sa obvykle ešte združujú do vyšších celkov, ktorých hierarchia sa líši podľa použitej architektúry. Niektoré výpočtové prostriedky GPU sú zdieľané v rámci určitej úrovne bloku. Napríklad registre a niektoré cache môže každý blok SM alebo CU mať vlastné, ale textúrovacie alebo rasterizačné jednotky môžu byť začlenené až v rámci vyššieho celku spájajúceho niekoľko základných výpočtových jednotiek.

Shadery („jadrá CUDA“)

V moderných herných a výpočtových úlohách majú asi najväčšiu úlohu jednotky pre všeobecné výpočty, ktoré sa nachádzajú v blokoch v počte napríklad 64 alebo 128. Zjednodušene sa im hovorí shadery, stream procesory, shader ALU alebo CUDA jadrá (u GPU Nvidia). Na týchto jednotkách je spracovávaný kód, ktorý na GPU spúšťate, takzvané shaderové programy. Tie pôvodne boli jednoduché a mali v hrách obmedzené využitie (označenie shader sa odvodzuje od využitia na tieňovanie), ale postupom času dostávali čoraz viac univerzálne schopnosti a teraz predstavujú výpočtový prostriedok použiteľný na všeobecné aj negrafické výpočty. V grafickom použití shadery môžu pracovať s bodmi snímky, ale aj s geometriou 3D modelov, ktorá je dnes tiež vypočítavaná pomocou shaderov.

Texturovacie jednotky (TMU)

Textúrovacie jednotky alebo TMU (Texture Mapping Units) sú vývojovo staršou funkciou, prítomnou takmer od prvých 3D akcelerátorov. Ich úlohou je spracovávanie operácií, ktoré sú potrebné na mapovanie textúr na modely v 3D scéne. Textúra je dvojrozmerný rastrový obraz, ktorý má predstavovať „povrch“ objektu. Aby sa ale objekt mohol týmto povrchom obaliť, musia byť body z rastra textúry rôzne upravené, aby boli zobrazené v správnej perspektíve, natočení a deformácii. Tiež je nutné ich preškálovať na správnu veľkosť. Tieto operácie sa označujú ako filtrovanie textúr (ktoré môže používať rôzne metódy – bilineárne, trilineárne, anizotropické) a stoja určitý výkon.

Úlohou textúrovacích jednotiek je práve spracovať operácie filtrovania bez toho, aby k tomu bol spotrebovávaný výkon všeobecných jednotiek GPU (shaderov). Vie tiež priamo pracovať s rôznymi komprimovanými formátmi textúr, ktoré šetria miesto v pamäti, bez toho, aby sa predtým museli dekomprimovať.

V skorších dobách sa pre GPU uvádzala hodnota tzv. texture fillrate v (mega či giga) texeloch za sekundu. Tento údaj hovoril, koľko výstupov (texelov, čo znamená bodov s aplikovanou textúrou) celkovo TMU v danom GPU zvládajú. Dnes tento parameter už nebýva v popredí záujmu, výkon textúrovacích jednotiek typicky nie je úzkym hrdlom výkonu.

Schéma skladby GPU Nvidia GB202 generácie Blackwell ukazuje rôzne funkčné bloky

Rasterizačné jednotky (ROP)

Jednotky ROP (Render Output Unit, alebo aj Raster Operations Pipeline) sú ďalšie zo základných súčastí GPU prítomných prakticky od začiatku. Úlohou týchto jednotiek je zlúčiť všetky výstupy vzniknuté pri vykresľovaní 3D obrazu ostatnými jednotkami GPU a vytvárať z nich hotové body tvoriace výstupnú dvojrozmernú snímku hry alebo 3D scény. Jednotky ROP pri tom môžu aplikovať metódy vyhladzovania ako je MSAA (kedy je na vytvorenie výstupného bodu snímky použitých viac vstupných vzoriek, aby sa potlačil tzv. aliasing).

Pre GPU sa hlavne v skorších dobách uvádzala hodnota tzv. pixel fillrate v (mega či giga) pixeloch za sekundu. Tento údaj hovoril, koľko obrazových bodov (pixelov) výstupných snímok môžu jednotky ROP v GPU celkovo vykresliť. Podobne ako pri textúre fill rate tento parameter už dnes nebýva v popredí záujmu.

Paměťový řadič

GPU má pamäťový subsystém s vlastným pamäťovým priestorom. Tieto pamäte riadi špeciálny radič, ktorého funkcia je veľmi dôležitá pre výkon GPU. Po grafickej pamäti je vyžadovaná veľmi vysoká priepustnosť, preto je obvykle volená väčšia šírka, hoci lacnejšie GPU majú aj 128-bitové alebo len 64-bitové šírky pamätí (šírka v bitoch sa často označuje ako šírka „pamäťovej zbernice“). V skutočnosti je radičov použitých viac paralelne, u pamätí typu GDDR má radič šírku 32 bitov, takže napríklad u GPU s 256-bitovou zbernicou je ich osem, u 384-bitovej dvanásť. Vedľa digitálnej logiky radičov obsahuje GPU aj bloky PHY, teda obvody generujúce samotný elektrický signál pre komunikáciu s pamäťou.

Cache

Podobne ako pri procesore GPU používa zložitejšiu hierarchiu pamäťového subsystému s vyrovnávacími pamätami (cache) v niekoľkých úrovniach – L0, L1, L2, prípadne aj L3 (Infinity Cache v GPU od AMD má postavenie L3 cache). Úlohou pamätí cache je držať najčastejšie využívané dáta, ktoré sú z nich k dispozícii s kratším oneskorením a s vyššou dátovou priepustnosťou, ako v prípade, že by ich GPU načítalo až z hlavnej grafickej pamäte.

Vykrytie časti požiadaviek na dáta z vyrovnávacích pamätí znamená, že sa zníži objem požiadaviek na dáta z hlavnej pamäte. Vďaka tomu dokáže celý pamäťový subsystém pokryť viac čítania dát. Väčšie cache tak vo výsledku dovoľujú dosiahnuť pri určitej danej priepustnosti hlavnej pamäte vyššieho celkového výkonu. Priepustnosť pamätí totiž dlhodobo je jedným z najvýznamnejších obmedzujúcich faktorov brániacich vo zvyšovaní výkonu GPU.

Pamäte cache môžu mať pozitívny vplyv aj na energetickú efektivitu. Získanie dát z pamäte cache stojí obvykle menej energie ako čítanie z pamäte, preto veľké a účinné cache môžu znížiť spotrebu GPU.

Akcelerátory AI

Za poslednú dekádu sa jednou z najdôležitejších, ak nie najdôležitejšou úlohu GPU stal beh aplikácií umelej inteligencie, ktoré využívajú ich vysoký výpočtový výkon. Do GPU boli kvôli tomu pridané špeciálne jednotky, ktoré vykonávajú operácie maticového násobenia pre potreby AI. Výkon pri použití týchto jednotiek je vyšší, než aký je dostupný na všeobecných výpočtových jednotkách (shaderoch). Tieto špeciálne jednotky ale podporujú menšiu množinu výpočtových operácií a často tiež pracujú iba s menej presnými dátovými typmi, čo im umožňuje dosiahnuť vyššie výkony. Zatiaľ čo pre GPU bývala štandardná presnosť výpočtov FP32 (32-bitová hodnota s plávajúcou rádovou čiarkou), pre umelú inteligenciu sa používajú 16-bitové, 8-bitové a dokonca aj 6-bitové či 4-bitové hodnoty (INT8, FP8, FP6, FP4).

Tensorové jadrá 5. generácie v grafikách Nvidia GeForce RTX 5000 podporujú maticové výpočty, po novom aj s dátovým typom FP4

V GPU architektúrach od Nvidie sú obsiahnuté akcelerátory AI označené ako Tensor Core. GPU od Intelu majú obdobné samostatné jednotky nazvané XMX. Výpočtové GPU od AMD používajú jednotky Matrix Core, ale herné GPU Radeon tento prístup zatiaľ nepoužívajú a akceleráciu AI majú zabudovanú do všeobecných výpočtových jednotiek.

Akcelerátory na ray tracing

Herná grafika dlho používala rôzne zjednodušené modely na výpočty osvetlenia. Od roku 2018 sa ale v hrách začala objavovať technológia ray tracingu, čo je už skôr známa technológia umožňujúca realistickú simuláciu osvetlenia a zároveň tieňov a odrazov a rozptylu svetla od zrkadlových alebo podobných povrchov. Ray tracing simuluje cestu lúčov svetla a ich interakciu s objektmi scény. Je tak možné s ním dosiahnuť realistickejší obraz. Táto technológia ale bola dlho nedosiahnuteľná kvôli vysokým nárokom na výkon.

Akcelerácia ray tracingu na jadrách RT

GPU preto od roku 2018 (architektúra Turing od Nvidie) obsahujú špeciálne jednotky, ktoré majú za cieľ akcelerovať niektoré časti procesu pri analýze lúčov. Najmä je to analýza ich priesečníkov s trojuholníkmi objektov na scéne, pri ktorej sa používajú tzv. BVH štruktúry.

Tieto jednotky majú opäť rôzne označenia v rôznych rodinách GPU – v architektúrach od Nvidie sa im hovorí RT jadrá, grafiky Intelu ich označujú RTU, AMD hovorí o Ray Acceleratoroch.

Multimediálny engine

Postupom času sa na GPU vedľa hernej 3D grafiky preniesli aj funkcie na prehrávanie multimédií, najmä videa. Ich predchodcami bola akcelerácia prevodu farieb medzi priestormi YUV a RGB, škálovanie obrazu (napríklad zväčšenie na celú obrazovku) alebo odstránenie prekladania, potom GPU začala byť vybavovaná aj plnohodnotnými blokmi na celkové dekódovanie video formátu.

Tieto dekodéry (napríklad NVDEC u GPU Nvidie) sú vďaka špecializovaným obvodom schopné video dekomprimovať s nízkou spotrebou a vysokým výkonom (pri transkódovaní je možné niekedy dosiahnuť až stovky snímok za sekundu). Ich využitie znamená, že pri prehrávaní médií nie je potrebné vyťažovať CPU počítača.

Prehľad podpory video formátov pre dekódovanie a enkódovanie NVDEC/NVENC na grafikách GeForce RTX 4000 (Ada Lovelace)

Po dekodéroch začala GPU neskôr integrovať aj podobné bloky pre kódovanie čiže kompresiu videa (napríklad u Nvidie sa enkodér nazýva NVENC). Ich využitie je napríklad pre videokonferencie, pre záznam alebo streamovanie videa z hier, alebo pre všeobecnú prácu pri spracovaní a strihu videa. Dnešné multimediálne enginy v GPU podporujú formáty H.264, HEVC, VP9 a najnovšie aj formát AV1.

Blok pre obrazový výstup (Display Engine)

Výstup jednotiek ROP tvoria dáta tzv. framebuffera, ktoré potom môže blok obrazového výstupu odoslať na zobrazenie na monitore. Táto funkcionalita zahŕňa možnosť vertikálnej synchronizácie (VSync), ktorá zabezpečuje, aby sa dáta do monitora začali odosielať vtedy, keď je pripravená nová snímka, a nedošlo k tomu, že sa počas odosielania snímka nahradí za novú (čo spôsobuje tzv. tearing, kedy v hornej časti monitora vidíte staršiu snímku, ale niekde uprostred je predel a spodná časť monitora ukazuje novšiu snímku).

Obrazový výstup moderných GPU tiež získal pokročilejšiu funkcionalitu – dnes napríklad vie obnovovať obraz na monitore s premenlivou frekvenciou (to je tzv. adaptívne obnovovanie pomocou technológií FreeSync, Nvidia G-Sync alebo HDMI Variable Refresh Rate) a tiež odosielať dáta do monitora komprimovane pomocou technológie VESA DSC svojou hrubou dátovou priepustnosťou.

Upozornenie: Článok pokračuje ďalšími kapitolami.

NVIDIA GeForce RTX řady 50: Vaše ideální grafické studio

Grafické karty NVIDIA GeForce RTX jsou nejoblíbenější řešení pro hraní her na PC, ale jsou navržené také pro využití ve velké škále polo i plně profesionálních pracovních a kreativních činností. Ovladače NVIDIA Studio otevírají majitelům grafik GeForce RTX řady 50 v desktopech i noteboocích možnosti, dříve dostupné jen s mnohem dražšími profesionálními GPU. Můžete se tak s nimi směle pustit do tvorby náročné 3D grafiky, jak si ukážeme. Celý článok „NVIDIA GeForce RTX řady 50: Vaše ideální grafické studio“ »

Byli jsme v továrně Gigabyte: Galerie z výroby grafik a desek

Minulý týden jsme reportovali z veletrhu Computex, kde jsme prostřednictvím našeho kolegy navštívili stánky různých firem. Z Tchaj-wanu máme ještě jednu fotoreportáž. Dostali jsme se totiž také do továrny firmy Gigabyte vyrábějící například základní desky a grafiky, odkud máme galerii fotografií. Vzdor populární představě neprobíhá všechna výroba hardwaru jenom v Číně, dost komponent se totiž vyrábí přímo na Tchaj-wanu. Celý článok „Byli jsme v továrně Gigabyte: Galerie z výroby grafik a desek“ »

Test Gigabyte AMD Radeon RX 9070 Gaming OC 16G: levnější a lepší

Levnější grafické karty nové generace už jsou v našich obchodech dostupnější než před pár týdny. Radeon RX 9070 Gaming OC patří k těm nejlevnějším modelům, které už mají obchody běžně skladem. Konstrukci má podobnou jako výkonnější Gigabyte AMD Radeon RX 9070 XT Gaming OC, ale díky nižší spotřebě nabídne mnohem lepší provozní vlastnosti a celkově je zajímavější volbou než jeho výkonnější příbuzný. Celý článok „Test Gigabyte AMD Radeon RX 9070 Gaming OC 16G: levnější a lepší“ »

One comment Pridať komentár

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *