Hlavní stránka Hardware Grafické karty Distribuované výpočty na moderních grafických kartách
Distribuované výpočty na moderních grafických kartách
autor: Dušan Vykouřil , publikováno 6.10.2010
Distribuované výpočty na moderních grafických kartách

Grafické karty většina z nás používá k sledování oblíbených filmů nebo hraní čím dál náročnějších her. Pojďme se ale podívat na trochu jiné využití. Grafické karty můžeme v domácích počítačích použít i pro vědecké účely, například pro simulace vývoje bílkovin, vývoje naší Mléčné dráhy nebo k nalezení matematických veličin.


Distribuované výpočty na moderních grafických kartáchVývoj dnešní výpočetní techniky dospěl do stádia, kdy ke zvýšení výkonu samotného procesoru pro domácí a kancelářské použití už není mnoho důvodů. Místo zvýšení výkonu samotného procesoru jde vývoj cestou vícejádrových procesorů s nižším taktem, ale s větším počtem jader na jednom čipu. Nejnovějším trendem je další miniaturizace a úspora ve spotřebě, ovšem výkon již prakticky nijak rapidně neroste. Důraz vývoje posledních let se soustředil spíše směrem ke zvyšování výkonu GPU (grafic processing unit) a tím i samotných grafických karet. Zde se hranice stále posouvají a tím i nároky na potřebný hardware. Není se proto čemu divit, že GPU v dnešních grafických kartách v mnoha ohledech předčí výkon klasických procesorů. Výkonem GPU nelze plně nahradit operace, které provádí CPU, lze však některé aplikace naprogramovat tak, že využívají právě potenciálu GPU. Po masovém rozšíření distribuovaných výpočtů využívajících miliony domácích počítačů a jejich CPU na přelomu tisíciletí zažívají tyto výpočty novou vlnu rozšíření právě tímto směrem.

Distribuované výpočty jsou vědeckým oborem, do kterého se může zapojit kdokoliv z nás a stačí mu k tomu dnes prakticky běžné vybavení domácnosti - počítač a připojení k internetu. Ve většině projektů distribuované výpočty fungují tak, že je náročná výpočetní práce rozdělena na spoustu dílků a ty jsou následně rozesílány na jednotlivé počítače, které si o ně řeknou. Po zpracování každého dílku jednotlivé počítače samy odešlou výsledná data zpět do centra projektu a tam dojde ke spojení výsledků opět do jednoho celku. Tímto způsobem je možné zpracovávat obrovská množství dat s minimálními požadavky na jednotlivé stroje, protože tyto dílky mají většinou jen malou velikost a výpočty trvají od několika minut do několika hodin. Projektů distribuovaných výpočtů je již více než sto s rozličným zaměřením a hned několik jich využívá i velkého potenciálu grafických karet.
Podrobněji se o distribuovaných výpočtech dočtete například zde >>>

Distribuované výpočty na moderních grafických kartáchVysoce specializovaná jádra grafických karet by nebylo možné využít pro jiné účely než zobrazovací (filmy, hry atd.) bez instrukcí, které to umožnily. Proto světlo světa spatřila roku 2007 technologie CUDA (Compute Unified Device Architecture) od nVidia a Stream od ATI v roce 2008. Distribuované výpočty na moderních grafických kartách CUDA podporuje různé jazyky a API, jako Fortran, OpenCL, C nebo DirectX Compute a je dostupná na nejpoužívanějších operačních systémech, jako je Linux, Windows a OS X. ATI Stream bylo nabídnuto široké veřejnosti poprvé v Catalystech verze 8.12. I tak se ale vývoj aplikací pro ATI potýkal s mnohými problémy. To bylo v prvé řadě způsobené absencí univerzálního rozhraní, přes které by klient mohl přistupovat ke grafické kartě. Některé z těchto potíží souvisejí s kompilátorem DirectX Microsoftu označovaným jako FXC, další s kompilátorem ovladače, nebo se vyskytly problémy přímo se samotným ovladačem. Veškerý vývoj by byl podstatně urychlen a usnadněn, kdyby existovalo nějaké univerzální či standardizované rozhraní. Taková obdoba Direct3D či OpenGL pro GP-GPU. Toto rozhraní ovšem zatím neexistuje, proto Stanfordská univerzita vyvinula v roce 2004 rozhraní Brook, což je rozšíření jejich vlastního programovacího jazyka C. Díky spolupráci se společností ATI je možné pomocí rozhraní Brook přistupovat k CTM - Close to Metal, což představuje rozhraní ATI pro GP-GPU. ATI Stream je ale také používána, záleží na programátorech jednotlivých projektů.

Distribuované výpočty na moderních grafických kartáchV poslední době se mluví o OpenCL (Open Computing Language) vytvořeném roku 2008 pod záštitou konsorcia Khronos. OpenCL je rozšířením OpenGL a je použitelná na ATI, nVidia, dokonce i na integrovaných grafických kartách Intel. Krom této univerzálnosti je výhodou možnost počítat složitější simulace díky rozšířeným možnostem programování. Mnohdy je považován za budoucnost počítání na grafických kartách.

Zatím není mnoho projektů, do kterých lze zapojit grafické karty. Majitelé karet ATI mají výběr dokonce ještě omezenější, než majitelé značky nVidia. Zjednodušeně řečeno - ATI má lepší HW, zato však nesmírně mizernou podporu pro vývojáře aplikací pro GPU, nVidia je na tom naopak (relativně horší HW, ale obrovská podpora). Podívejme se tedy podrobněji na všechny projekty, u kterých je GPU možné zapojit. I když projektů není zatím mnoho, konečné rozhodování nemusí být zrovna jednoduché.



 
Komentáře naleznete na konci poslední kapitoly.
97 čtenářů navrhlo autorovi prémii: 45.3Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.