Hlavní stránka Hardware Grafické karty Rozhraní DirectX 11 a jeho nejbližší budoucnost
Rozhraní DirectX 11 a jeho nejbližší budoucnost
autor: Z. Obermaier , publikováno 8.3.2010
Rozhraní DirectX 11 a jeho nejbližší budoucnost

Grafické karty jsou dnes zřejmě nejviditelnějším kusem hardware, kdy se nové generace s vyšším výkonem a technologiemi objevují v téměř pravidelných časových odstupech. Nejskloňovanějším slovem tohoto roku a zřejmě i několika příštích let bude bezesporu DirectX 11 jako nejvíce prosazované API.


Výkon grafické karty je kromě her, možné využít v mnoha náročných výpočetních úlohách. Jako první nám tuto možnost nabídly v omezené formě Radeony koncem roku 2006 díky CTM (Close to Metal) rozhraní, které bylo použito pro klienta populárního DC klientu Folding@Home. Bohužel se ale CTM zrovna neujalo, možná i z důvodu malé podpory ze strany ATI. NVIDIA reagovala poměrně rychle a pár měsíců nato uvádí počátkem roku 2007 univerzálnější řešení v podobě rozhraní CUDA. Už tehdy se výrobce snažil své rozhraní prosadit, do širšího povědomí veřejnosti se ale dostalo až s prvními grafickými kartami GeForce 200. Dnes už existují tisíce vědeckých aplikací využívajících právě GPU k provádění výpočtů a urychlení dokončení úloh. V běžné praxi normálních uživatelů je ale možností méně. Můžeme si pomoci v některých grafických programech nebo v práci s videem. Také AMD se snaží a pracuje na svém vlastním rozhraní ATi Stream. V tuto chvíli je NVIDIA ve vývoji a ve využitelnosti dále, díky rozhraní CUDA je možné mimo jiné využít akceleraci herní fyziky PhysX.

Kromě dvou proprietálních technologií se nabízí několik alternativ. Nejznámější je bezesporu OpenCL, jež by se jednou mohl stát konkurenceschopnou alternativou k řešením omezeným jen na konkrétního výrobce grafické karty. Stejnou cestu standardizace zvolil i Microsoft a implementoval do Direct3D 11 stejnou možnost. V novém API je možné zadat Shaderům i jiné úlohy než související přímo s renderováním scény.

Rozhraní DirectX 11 a jeho nejbližší budoucnost

Hlavní výhodou je přímá implementace do grafické pipeline. To umožňuje využít výkon Shaderů pro nějakou další úlohu nesouvisející přímo s obrazem, a po výpočtu ji do výsledku zakomponovat a zobrazit. Nevýhodou se může zdát komunikační rozhraní jazyka HLSL, jež musí vývojář znát. Pokud je ale kód vytvořen korektně, bude fungovat na různých grafických kartách s rozdílnou architekturou stejně. Záleží už jen na efektivitě a možnostech daného čipu poskytnout výkon k těmto účelům. V praxi to znamená, že například tímto způsobem akcelerovaná fyzika nabídne stejné efekty na kartách Radeon i GeForce, zdali bude ale dopad na fps u obou stejný je otázka. Časem se snad nějaké takto vyrobené hry dočkáme a budeme moci dopad na výkon změřit v reálu.

Rozhraní DirectX 11 a jeho nejbližší budoucnost

Další obrázek ukazuje možný příklad využití. Grafická karta například renderuje scénu, mezitím se v Shaderech dopočítají na finální obraz post-processing efekty (osvětlení, stíny) a přidají se do konečného zobrazení na monitoru. K čemu se může schopnost výpočtů skrze Direct Compute hodit ukazuje další obrázek:

Rozhraní DirectX 11 a jeho nejbližší budoucnost

Sílu GPU lze využít k operacím s obrazem. Jde o různé ořezy, změny pohledů a mnoho dalších. Obraz lze také komprimovat, aplikovat nějaké barevné efekty včetně rozmazání a podobně. Dalším využitím je fyzika. Akcelerovat lze částicové efekty, kapaliny a plyny, detekce kolizí. Z pohledu AI lze také urychlit výpočet trasy mezi dvěma body. Významně pomoci může také výpočet animacím, deformacím objektů a prostředí. S nadcházejícími grafikami GeForce na bázi architektury Fermi se také opět hovoří o Ray-tracingu, který by snad mohl být při výkonu těchto karet použitelnější. Zde je nutné říci, že klíčovou vlastností je schopnost grafického jádra, přepínat mezi prací pro render a výpočtem. Ideální frekvence přepínání by byla jednou za takt, té ale dosud dosaženo nebylo.

Rozhraní DirectX 11 a jeho nejbližší budoucnost

Demo FFT Ocean

Na závěr této kapitoly je nutné říci, že Direct Compute není úplná novinka rozhraní Direct3D 11. Už na DX10 hardware NVIDIA demonstrovala několik dem, která využívala právě standardizované rozhraní Compute Shader z Direct3D 11. Nejznámější byla simulace vody v oceánu nebo zelené kolidující kuličky. Starší DX10 karty a API podporovalo standard Compute Shader 4.0, novější hardware a Direct3D 11 už disponuje verzí Compute Shader 5.0. Ten přinesl opět několik zásadních novinek, hlavní jsou zvýšení výkonu atomických operací, dvojitá přesnost (Double precision) a další vylepšení.

Nabízí se otázka, zdali budou výrobci grafických karet dál propagovat svá vlastní řešení (CUDA a ATi Stream) nebo přenechají práci vývojářům her, kteří fyzikální efekty mohou naprogramovat pro Direct Compute. Pokud budeme mluvit mimo teoretickou rovinu, jde v podstatě pouze o PhysX. Konkurence žádné řešení fyziky nenabízí a ani dlouho nebude. Pro AMD už nemá cenu ani s podobným řešením začínat, a spíše se nabízí možnost přesvědčit některé herní vývojáře o implementaci fyzikálních efektů přímo do DX11 hry. Kdy se objeví první titul s fyzikou akcelerovanou tímto způsobem si netroufám odhadnout, možná by mohl být průkopníkem Crysis 2. Jedno je ale jisté, NVIDIA si PhysX jako svou výhodu bude hýčkat dále a s touto implementací fyziky se budeme setkávat určitě častěji, než s dalšími řešeními.



 
Komentáře naleznete na konci poslední kapitoly.
226 čtenářů navrhlo autorovi prémii: 53.8Kč 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.