reklama

Výpočty na grafické kartě: odlehčete procesoru

Zpracování videa, komprimace nebo prolamování hesel, to vše dnes dokážou grafické karty. I levnější modely jsou v tom často výkonnější než ty nejdražší současné procesory.
Kapitoly článku

Procesor je považován za mozek počítače, přesto však často jde o jednodušší zařízení, než jakým je běžná grafická karta. Ta je totiž s trochou nadsázky samostatným počítačem, který se už dávno nevyužívá jen k výpočtu herních scén. Množství procesorů a gigabajty rychlé vyhrazené paměti najdou uplatnění také při méně obvyklých činnostech.

Karta nejen na grafiku

Grafickou kartu má v počítači úplně každý, většina uživatelů se spokojí s některým modelem Intelu či Radeonem integrovaným v procesoru. Především dedikované grafiky jsou ale tahounem odvětví GPGPU (General-Purpose Graphics Processing Unit) a u nich to celé začalo. Běžný počítačový procesor je univerzálním řešením pro všechny výpočetní úlohy, grafické čipy se orientují především na paralelní zpracování a jednodušší operace, které pak díky optimalizaci zvládnou mnohonásobně rychleji.

Klepněte pro větší obrázek
Grafická karta bez grafických výstupů, to je Nvidia Tesla K20, ve skutečnosti „pouze“ koprocesor pro GPGPU s 2 496 jádry, 5 GB paměti a cenou přesahující 70 000 Kč

Ideálním příkladem výhodného nasazení GPGPU je zpracování jednoho úkolu nad větším množstvím dat. Představíte-li si rozměrné pole, běžný procesor by jej musel v cyklu projít a pro každý z jeho prvků provést požadovanou operaci. GPU rozdělí úlohu mezi své výpočetní jednotky a provede celou operaci najednou nebo v několika málo cyklech. Obdobně rychlá je práce s vektory, maticemi či jinými vstupy, kde hrají roli poměrně jednoduché operace s rozsáhlými daty.

 
Grafická karta nemusí sloužit jen na hry, GPGPU z ní dělá mocný víceúčelový nástroj
 

Díky této specializaci nehrozí postupné nahrazení běžných procesorů grafickými kartami, ale je zcela přirozený probíhající trend začlenění grafického jádra jako součásti procesoru, tak jako se to stalo v minulosti třeba s matematickým koprocesorem zaměřeným na výpočty s plovoucí desetinnou čárkou. Díky tomu se s GPGPU dnes setkáte i u vestavěných jader řady Intel HD Graphics nebo Radeonů v APU od AMD.

Shader jako alfa i omega

Zásadním rozdílem mezi grafickou kartou a procesorem je konstrukce a množství vnitřní logiky, ať už jde o zachování zpětné kompatibility platformy x86, nebo fakt, že procesor plánuje (predikční algoritmy), obsluhuje události (požadavky přerušení) apod. Zatímco v dnešních desktopových CPU najdete maximálně osm více či méně robustních jader, množství výpočetních jednotek v GPU jde do tisíců.

Klepněte pro větší obrázek
Výpočetní karty nacházejí své uplatnění především v oblasti superpočítačů a výpočetních středisek, v domácích podmínkách pro GPGPU poslouží i běžná herní grafika

Výkonné součásti jsou nazývány shadery, ale dnes se používá spíš označení stream procesory. Shader je programovatelná součást grafického čipu, která slouží k manipulaci s pixelem či vrcholem, ať už jde o jeho barvu nebo geometrické vlastnosti. Stream procesor je obecnějším pojetím shaderu. Jeho primární úlohou je shadery unifikovat a umožnit každému z nich všechny operace, tedy zamezit rozdělení na pixel shadery, vertex shadery aj., které si mezi sebou přelévaly data, zatímco velká část čipu byla v každou chvíli nevyužitá. Přechod k unifikovaným shaderům – stream procesorům – tento problém vyřešil a současně otevřel dveře do té doby okrajové technologii GPGPU.

Co je stream processing?

Pojem stream processing označuje základní kámen, na kterém staví technologie GPGPU. Odkazuje na instrukce SIMD (Single Instruction, Multiple Data) umožňující vykonání jednoho postupu nad větším množstvím dat. Využití nachází v paralelním programování, což je také případ GPGPU. Umožňuje programátorovi využívat pole výpočetních jednotek, bez přesného určení co má který výpočetní blok v danou chvíli provádět, a současně odpadá problém synchronizace. Vstupem jsou data (stream) a sada instrukcí, které mají být provedeny.

Největší přínos v oblasti výpočtů stále mají samostatné grafické karty, protože jsou svébytným celkem, u kterého pracují rychle všechny jeho součástí. Jde především o paměť, protože té má běžný procesor nedostatek. Cache je relativně malá a operační paměť RAM zase pomalá. Úzkým hrdlem s dedikovanou kartou se tak stává jen systémová sběrnice. Celý postup pak funguje tak, že jsou z hlavní paměti RAM nakopírována data do paměti grafické karty, tam dojde k automatickému rozdělení mezi výpočetní jádra (stream processing), samotný výpočet je instruován hlavním procesorem a po jeho skončení jsou zase data zkopírována do RAM počítače. Grafická karta tak slouží jen na jednotlivé úlohy a vzhledem k netriviálnímu vývoji programů využívajících GPGPU jde výhradně o ty, kde má její zapojení významný přínos.

Každý svou cestou

První neherní programy využívající grafické karty pracovaly s shadery, jejichž funkci ohýbaly tak, aby byly použitelné i mimo svět grafických výpočtů. Programování probíhalo skrze multimediální rozhraní API (DirectX) nebo stavělo na Assembleru, ale v obou případech šlo o krkolomné řešení. Výrobci grafických čipů si uvědomovali výkon i šíři využití svých procesorů, což vedlo ke vzniku platforem Nvidia Cuda a ATI Stream.

Klepněte pro větší obrázek
Výpočet probíhá na grafické kartě, ale stále je řízen hlavním procesorem, úzkým hrdlem zůstává systémová sběrnice (zdroj: Wikipedia)

Cuda umožňuje vývojářům programovat v jazycích Fortran, C a C++, nechybí ale ani nástroje třetích stran pro vývoj v mnoha dalších jazycích, mezi kterými najdete třeba Javu nebo Python. Při práci se s akcelerací na kartách Nvidie setkáte často, AMD je v tomto ohledu mírně pozadu a konkurenta pozvolna dohání.

 
Pravděpodobným vítězem v oblasti vývoje pro grafiky se stane OpenCL, možností je ale víc
 

Technologie závislé na hardwaru jednoho výrobce jsou vždy přítěží pro vývojáře, a proto se nyní oba producenti grafických čipů soustředí na plnou podporu aplikačního rozhraní OpenCL založeném na jazyku C. Tato sada funkcí si klade za cíl sjednotit vývoj napříč hardwarem a umožnit vývojářům implementaci akcelerace pomocí grafiky bez nutnosti přepisování kódu pro více platforem.

Klepněte pro větší obrázek
OpenCL pod sebou zahrnuje i práci s pamětí, zavádí její logické rozvrstvení a přidělování zpracovávaným úlohám

Další výhodou OpenCL je podpora většího množství hardwaru, než jsou pouze grafické karty. To umožňuje využít výpočetní výkon počítače jako celku nebo přenášet zátěž mezi procesorem a grafikou, což může být užitečné zejména u mobilních zařízení s ohledem na co největší úspornost. Aktuální stabilní verze 1.2 dále umožňuje např. rozdělit výpočetní sílu do několika samostatných bloků a těm pak zadat práci odděleně. Díky tomu lze pro kritickou část kódu pevně vymezit díl hardwaru, který nebude vytěžovat nic jiného. Připravovaná verze 2.0 přinese kromě jiného sdílenou virtuální paměť, generický adresní prostor nebo rozšířenou podporu ovladačů pro Android.

Témata článku: Hardware, Technologie, Stream, Seti, Foot, Intel HD Graphics, Snow, Winzip, Physx, Omega

27 komentářů

Nejnovější komentáře

  • rumcajs1968 9. 10. 2013 12:10:13
    Jak jsou na tom tyto karty např. s těžbou BTC nebo LTC? Pro...
  • dolph1888 9. 10. 2013 11:45:03
    Tohle kdo zná využívá pro CUDA kódování H.264, co se týká dalšího...
  • Peter Fodrek 9. 10. 2013 10:11:54
    Chcem sa opytat, nenasiel som v clanku zmienku o najnovsom prirastku do...
reklama
Určitě si přečtěte

Microsoft: Zbavte se už konečně zastaralých a děravých Windows 7

Microsoft: Zbavte se už konečně zastaralých a děravých Windows 7

** Microsoft pomalu začíná kritizovat svůj nejpopulárnější OS ** Chce konečně dostat podniky na Desítky ** Bezpečnostní podpora Sedmiček vydrží ještě necelé tři roky

17.  1.  2017 | Jakub Čížek | 408

Vyzkoušeli jsme FM štěnici: Když si vtipálci hrají na pirátské rozhlasové vysílání

Vyzkoušeli jsme FM štěnici: Když si vtipálci hrají na pirátské rozhlasové vysílání

** Dnes žádnou elektroniku programovat nebudeme ** Štěnice totiž funguje sama o sobě ** Stačí připojit baterii a naladit frekvenci

Včera | Jakub Čížek | 23

8 produktů, o kterých byste neřekli, že nesou značku Apple

8 produktů, o kterých byste neřekli, že nesou značku Apple

** Věděli jste, že Apple vyvinul celkem 45 modelů tiskáren? ** ** Monitor na výšku, plotter nebo herní konzole - to vše měl Apple ve své nabídce ** Většinu z těchto produktů pohřbil Steve Jobs

19.  1.  2017 | Stanislav Janů | 43

Umělá inteligence dokáže ze snímků srdce předpovědět, kdy zemřete

Umělá inteligence dokáže ze snímků srdce předpovědět, kdy zemřete

** Strojové učení lze skvěle použít pro vylepšení modelů pro předpověď srdečních komplikací ** Nová technologie umožňuje přesněji určit rizikové pacienty ** Dřívější diagnostika může díky včasně léčbě do budoucna zachránit životy

21.  1.  2017 | Karel Javůrek | 7

Takto si špičkoví grafici představují nový Facebook. S čistým vzhledem a bez reklam

Takto si špičkoví grafici představují nový Facebook. S čistým vzhledem a bez reklam

** Design Facebooku se delší dobu nemění a pro mnohé je nudným ** Grafici zkouší navrhovat nové koncepty toho, jak by mohla síť vypadat ** Hlasujte pro nejzdařilejší návrh

Včera | Stanislav Janů | 60


Aktuální číslo časopisu Computer

99 nejlepších programů pro váš počítač

Zvykejte si na umělou inteligenci

Velké testy PC zdrojů a gamepadů

Alternativní zdroje energie

reklama
reklama