Galerie 9
OpenCL - konkurent pro DirectX?
Článek Grafiky a hry Hry a technologie

OpenCL - konkurent pro DirectX? | Kapitola 5

Petr Štefek

Petr Štefek

5

Seznam kapitol

1. OpenCL - konkurent pro DirectX? 2. Proč již nevyužíváme datově paralelních výpočtů? 3. OpenCL - pro koho je vlastně určeno? 4. Proč si NVIDIA myslí, že Brook+ a CUDA jsou alternativami? 5. OpenCL rozšiřuje OpenGL aneb dokonalá symbióza 6. Závěr

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.

Reklama

OpenGL 3.0 bylo zklamáním pro vývojáře her, kteří doufali v API s novými klíčovými vlastnostmi, které by ukončily zaostávání za konkurenčním DirectX. Khronos využil poslední verze OpenGL v profesionální sféře v aplikacích jako je CAD/CAM a tvorba 3D obsahu. Bohužel dnes (možná bohudík) neexistuje žádný větší vývojář her, který by herní engine pod OpenGL vyvíjel nebo provozoval. Poslední mohykán v oblasti OpenGL byl Id Software a jeho engine hry Doom 3. O následovníkovi se zatím pouze a jen spekuluje.

OpenCL ovšem má jedno eso v rukávu. Jedna z hlavních výhod DirectX 11 bude přidaní výpočetního shaderu do pipeline. Tento výpočetní shader bude tzv. „general purpose“ typu (stejně jako je například běžné CPU) a bude schopen zpracovávat odlišné datové struktury, se kterými si pixel shader neporadí. OpenCL má ovšem podobné vlastnosti a není na rozdíl od DirectX 11 striktně zaměřeno na grafiku, kde sdílení dat vychází principielně z daných datových struktur než z klasického vstupně/výstupního mechanismu.

OpenGL nic podobného neumí, ale právě OpenCL do značné míry pomáhá změnit. Mezi OCL a OGL bude existovat fyzické sdílení datových struktur a částí paměti. To v principu přidává podporu výpočetního „general purpose“ shaderu do OpenGL pro ty, kdo jej budou chtít využít. To znamená, že nejenže budou moci OpenCL a OpenGL pracovat se stejnými daty, ale metoda jakou pracují a komunikují je velice podobná DirectX 11 a jeho práci s daty mezi pixel shaderem a geometry shaderem.

OpenCL - konkurent pro DirectX?

Důvod k povyku ovšem nemají ani tak herní vývojáři, kterým může budoucí DirectX 11 připadat mnohem jednodušší a oblíbenější, ale především vývojáři v profesionální sféře. Tam dostanou možnost kombinovat reálnou práci se simulací nebo manipulovat s daty u vizualizací. Pokud samotný hardware podporuje „double precision“, můžeme s úspěchem využít u aplikací, kde mnoho práce musí být směřováno vizualizaci částí a zároveň celku jako takového. V principu tak lze všechno o mnoho uspíšit a problémem nebudou ani realtime vizualizace, kde se zároveň bude moci pracovat s daty.

Jako přídavek toho všeho může být i fakt, že výpočetní shader bude pracovat i s hardware, který jinak není kompatibilní s DirectX 11, ale v současné době není možné říci, jaké budou přesné specifikace tohoto API. Kombinace OpenGL 3.0 a OpenCL 1.0 po dlouhé době bude znamenat funkcionalitu a technologii na úrovni DirectX. Dnes je velmi těžké jen odhadnout, zda to bude znamenat pro OpenGL vstání z popela či nikoli.

OpenCL - konkurent pro DirectX?

V každém případě je fakt, že OpenGL a OpenCL sdílejí data bez nutnosti je kopírovat nebo konvertovat, opravdu klíčový. Vývojářům dovolí OpenCL využívat GPU jako „general purpose“ procesor a spojení s OpenGL zase pomůže postavit most mezi datově paralelními výpočty a vizualizací. CUDA ani Brook+ nemají v této oblasti vše vyřešeno a využívání OpenGL nebo DirectX pro datově paralelní výpočty je neefektivní. Spojení OpenCL a OpenGL tyto problémy nezná. Jak se k celé věci postaví vývojáři, se zatím můžeme jen dohadovat.

Spojením těchto dvou rozhraní vzniká téměř dokonalá symbióza a pro vývojáře otevírá nekonečné horizonty možností.


Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama