Asus Strix GTX 1070 O8G Gaming: Pascal ve velkém testu
Grafické karty nové architektury Pascal jsou tu s námi už nějakou tu chvilku, ale víte o nich opravdu vše? Dnes se tedy kromě samotné recenze GeForce GTX 1070 v podání společnosti Asus podíváme na zoubek také této nové architektuře grafických karet společnosti Nvidia.
gpureport.cz  Pavel Šantrůček  21.07.2016

OBSAH:
1. Pascal - architektura          
12. Thief          
2. Pascal - nové technologie          
13. Middle Earth: Shadow of Mordor          
3. Asus Strix GTX 1070 O8G Gaming          
14. Alien: Isolation          
4. Asus Strix GTX 1070 O8G Gaming - pokračování          
15. Far Cry 4          
5. Jak budeme testovat          
16. Dying Light          
6. Syntetické testy          
17. GTA V          
7. Testy asynchronních shaderů          
18. The Witcher 3: Wild Hunt          
8. Testy Fast Sync          
19. Teplota, hlučnost a spotřeba          
9. Metro Last Light          
20. Přetaktování          
10. Crysis 3          
21. Závěr          
11. Battlefield 4          
 

Test asynchronních shaderů

Dříve, nežli se pustíme do testování podpory či nepodpory asynchronních shaderů na grafických kartách architektury Pascal, alespoň v krátkosti si objasníme, co to vůbec asynchronní shadery jsou a jak pracují.

Pokud mluvíme o asynchronních shaderech, máme tím na mysli souběžné zpracování grafických a výpočetních úloh. Tyto úlohy (nebo příkazy) jsou z aplikace (hry) na grafickou kartu zasílány za pomoci příkazových front (Command Queue). Aby tyto úlohy mohly být grafickou kartou zpracovávány paralelně, musí být také na grafickou kartu paralelně zasílány. API nové generace, jako je DirectX 12, Mantle, Vulkan nebo Metal, proto na zasílání těchto úloh využívají příkazových front hnedle několik. Pomocí Graphics Queue jsou na GPU zasílány úlohy grafické a pomocí Compute Queue zase úlohy výpočetní. Pro kopírování dat zde existují ještě fronty Copy Queue, ale ty nás dnes zajímat nebudou.

Pokud tedy počítačová hra využívá DirectX 12 a zároveň její engine také asynchronní shadery, které jsou využity zejména pro post-processingové efekty (není to ale podmínka), DirectX vytvoří mezi aplikací a grafickou kartou jednak frontu Graphics Queue pro grafické úlohy, ale také frontu Compute Queue pro výpočetní úlohy. Tak je tedy zajištěno paralelní odesílání úloh na GPU. Samozřejmě, pokud grafická karta asynchronní shadery podporovat neumí, ovladač GPU to sdělí DirectX, které pak žádnou Compute Queue nevytvoří a veškeré úlohy jsou zasílány pomocí Graphics Queue.

Samotné paralelní odesílání úloh na GPU za pomoci Graphics a Compute Queue ale ještě neznamená, že budou tyto úlohy na GPU také paralelně zpracovávány. K tomu je zapotřebí, aby také samotný hardware grafické karty uměl tyto grafické a výpočetní úlohy na svých výpočetních jednotkách souběžně zpracovat. Pokud to neumí, úlohy jsou pak zpracovány sériově, tedy jedna za druhou, a žádný přínos z asynchronních shaderů se nekoná.

Pokud chceme odhalit, zda grafické karty nové generace Pascal asynchronní shadery podporují, musíme tedy zkoumat hned dvě věci. První věcí je především zjistit, jestli je u hry (podporující DirectX 12) vytvořena fronta Compute Queue a druhou pak, zdali grafická karta umí na svých výpočetních jednotkách spustit souběžně úlohu grafickou i výpočetní. Takže jak to budeme testovat?

Vezme hry, které podporují DirectX 12 a to, zda v DirectX 12 byla či nebyla vytvořena fronta Compute Queue nám odhalí nástroj GPUView. MDolenc test nám zase ukáže, jestli nová generace Pascalů umí na svých výpočetních jednotkách spouštět souběžně úlohy grafické i výpočetní. Jak testovat tedy víme, takže vzhůru do toho. Nejdříve začneme testovat přítomnost Compute Queue pomocí GPUView.

Ashes of the Singularity

Počítačová hra Ashes of the Singularity v GPUView bohužel frontu Compute Queue nevytvořila. Znamená to, že asynchronní shadery na GTX 1070 v této hře neběží. To, ale nic neznamená. Víme, že Nvidia s tvůrci této hry úzce spolupracovala na optimalizacích a asynchronní shadery mohly být na přání Nvidia pro grafické karty architektury Maxwell zakázány. Teprve až časem uvidíme, jestli se podpora pro asynchronní shadery pro grafické karty Pascal v této hře neobjeví, či nikoliv.

Rise of the Tomb Raider

Ani v počítačové hře Rise of the Tomb Raider GPUView nedetekovalo žádnou vytvořenou výpočetní frontu Compute Queue u grafické karty GTX 1070. Ale opět to nemusí nic znamenat. RotTR je hra vyvíjená v pod taktovkou TWIMTBP, takže i zde mohly být asynchronní shadery z "politických" důvodů ze hry odstraněny.

Hitman

Hitman GPUView

 

Tak konečně jsme se dočkali. Hitman pod DirectX 12 vystavil pro grafickou kartu GTX 1070 výpočetní frontu s názvem COMPUTE_1 jako by se nechumelilo a v této hře tak na GPU mohou putovat výpočetní a grafické příkazy paralelně. Jásat se zatím ale nedá, protože musíme ještě později ověřit, zdali grafická karta GTX 1070 umí tyto příkazy také souběžně zpracovávat. Jedna poznámka pro nedůvěřivé, obrázek z GPUView byl upraven tak, aby se do něj vešlo vše podstatné a přitom nezabral celou stránku, takže ano, obrázek byl upravován.

3DMark Time Spy

GPUView Time Spy

 

Obdobně jako v Hitmanovi i v 3DMark Time Spy byla výpočetní frontě na grafické kartě GTX 1070 vystavena zelená a nic opět nebrání tomu, aby výpočetní úlohy putovaly frontou s názvem COMPUTE_1 paralelně k frontě grafické (obrázek byl opět upravován).

První podmínka podpory asynchronních shaderů na grafické kartě architektury Pascal byla tedy splněna. Ovladač grafické karty informuje aplikaci o tom, že paralelní práci více front daná grafická karta podporuje a proto je také pro výpočetní úlohy v DirectX 12 vytvořena speciální fronta Compute Queue, pomocí které jsou na ní výpočetní úlohy zasílány. Zbývá tedy pouze ověřit podmínku druhou, tedy zda grafická karta umí na svých výpočetních jednotkách souběžně zpracovávat oba typy úloh, jak grafické, tak také i výpočetní.

 

MDolenc Test

Tento test probíhá ve třech průchodech. V prvním průchodu jsou testovány pouze úlohy výpočetní, kde pro jejich odesílání na GPU je použita pouze jediná fronta (Compute queue) a zaznamenány časy exekucí. Ve druhém průchodu jsou pak na GPU zasílány souběžně úlohy grafické i výpočetní pomocí dvou front (3D queue a Compute queue) a opětovně měřeny časy. Třetím průchodem jsou pak všechny příkazy, jak grafické, tak také výpočetní, zasílány na GPU pomocí fronty jediné (3D queue) a samozřejmě opět měřeny časy. Tento třetí průchod ale v dnešních měřeních používat nebudeme a soustředíme se pouze na první dva průchody.

Pokud jsou naměřené časy snímků u obou průchodů totožné, znamená to, že výpočetní úlohy byly prováděny souběžně s úlohami grafickými. V opačném případě, kdy se časy úloh v obou průchodech liší, výpočetní úlohy nebyly prováděny souběžně s úlohami grafickými, ale pouze sekvenčně, jedna po druhé a časy úloh se pak sčítají.

Na ukázku, jak by měl výstup MDolenc testu vypadat v případě, kdy jsou úlohy grafické a výpočetní na výpočetních jednotkách grafické karty prováděny souběžně, použiju výsledek grafické karty Radeon R9 380.

 

MDolenc test R9 380

Nyní se tedy podíváme na výsledky grafické karty GTX 1070

 

MDolenc GTX 1070

 

Shoda linií čar u grafické karty GTX 1070 sice není tak patrná jako z grafu Radeonu R9 380, nicméně v zakroužkované části je myslím docela dobře vidět, že i zde pracovaly úlohy výpočetní a grafické souběžně.

Druhá podmínka, potřebná pro podporu a práci asynchronních shaderů, byla splněna a tak tedy nezbývá nic jiného než konstatovat, že grafické karty architektury Pascal práci asynchronních shaderů podporují. Jistě, nebude to taková „hitparáda“ jako u grafických karet společnosti AMD. S největší pravděpodobností ani výkonnostní zisky z využití asynchronních shaderů nebudou takové jako v případě GCN. Nicméně, dá se předpokládat, že ve hrách, které asynchronní shadery využívají, grafické karty architektury Pascal nebudou výkon ztrácet, jako tomu bylo u Maxwellu, ale naopak, nějaký ten nárůst výkonu to přinese.

         
Předchozí kapitola   Další kapitola