Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

OpenCL - konkurent pro DirectX?

29.1.2009, Petr Štefek, článek
OpenCL - konkurent pro DirectX?
OpenCL je nový adept na poli univerzálních rozhraní pro akceleraci aplikací skrze výpočetní sílu grafických karet. První krůčky Nvidie jsme mohli pozorovat s rozhraním CUDA, které je nadstavbou nad programovací jazyk C. OpenCL by však mohlo vše sjednotit.

OpenCL je vysokoúrovňové API (Application Programming Interface), které vyžaduje, aby programátor vytvářel některé úlohy, jenž nemají s implementováním paralelního algoritmu nic moc společného. OpenCL zařízení musí být v systému nejprve nalezeno a poté správně nastaveno k vykonávání úlohy. To vyžaduje mnoho operací nad prováděnou úlohou jako je výběr zařízení, vytváření řídících příkazů, správa bufferů pro dodávání/ sbírání dat na zařízení a dynamického kompilování OpenCL kernelu uvnitř programu.

Brook+ a CUDA schovávají komplexnost nastavení hardware za ovladače, které si s těmito detaily poradí. To umožní vývojářům napsat jádro, používat ho a zapomenout po většinu času na to, co se děje uvnitř hardware. To je pro AMD a NVIDII velmi dobré, jelikož to dá vývojářům dostatečně dlouhou dobu na seznámení se s tímto typem programování a vyvarování se v budoucnosti zbytečné komplexnosti při řešení datově paralelních úloh.



NVIDIA ovšem považuje za hlavní baštu své platformy CUDA akademickou sféru, kde bude mít nadstavba nad programovacím jazykem vždycky své místo, neboť samotní vědci nechtějí být programátory více, než je nezbytně nutné. Žádný z vědeckých teamů totiž nechce a nemůže tratit čas při zpracovávání svých vědeckých úloh problémy, které před ně bude klást standardizované řešení jako OpenCL. NVIDIA pracuje na poli HPC řešení velice tvrdě, a tak již dnes má mnoho univerzit a vědeckých týmů zkušenosti s prací pod platformou CUDA. Je velmi pravděpodobné, že OpenCL bude řešením pro konečná stádia programu, kde bude vlastní kód odladěn k naprosté dokonalosti a naopak CUDA a Brook+ poslouží lépe v pracovním a testovacím stádiu.

Pokud si celou věc shrneme, tak dostaneme relativně zřejmý výsledek. OpenCL bude pohánět aplikace ve spotřebitelské sféře a zároveň využívat výhod hardware k akceleraci datově paralelních výpočtů. Brook+ a CUDA budou mít stále své místo v oblasti průmyslu taktéž, tedy alespoň do doby, než se na scéně objeví nový standard, který se postupem času stane populárnější a smete tyto pionýry do zapomnění.