GTX 690 a 2× HD 7970 do hloubky: proč je řada testů multi-GPU k ničemu

0

GeForce GTX 690 a microstuttering

O microstutteringu (dá se vyložit jako krátkodobé zadrhávání), se v současnosti mluví nejčastěji v souvislosti s konfiguracemi postavenými na dvou a více grafických čipech. Na nich se obraz  renderuje nejčastěji metodou AFR (alternate frame rendering), při které jednotlivé GPU střídavě vykreslují vždy jeden celý snímek. Při použití dvou GPU má tedy jeden na starosti sudé a druhý liché snímky.

Při vykreslování ale z různých důvodů dochází k problémům se synchronizací čipů a načasováním zobrazení jednotlivých snímků. Traduje se, že je to kvůli tomu, že je každý snímek jinak náročný a rendering trvá různě dlouho. Problém bude ale složitější, jen málokdy je další snímek z obdobné scény výrazně náročnější než předchozí. A už vůbec se nestává, že by byl náročnější každý druhý, jak by tomu muselo být v situacích, kdy rozptyl s každým snímkem rychle narůstá.

Microstuttering nejčastěji pozorujeme, když každý druhý snímek zůstává na obrazovce výrazně déle než ten předchozí. Když se první ze snímků zobrazí jen krátce a vystřídá jej druhý a obraz se dlouho nepohne, snímková frekvence se zdá mnohem nižší, i když po zprůměrování časů obou snímků dosahují průměrné fps (snímky za sekundu) hodnot považovaných za plynulé.

V testech grafických karet se výkon obvykle hodnotí na základě průměrných fps. Víceprocesorová řešení z toho bohužel hodně profitují – při zprůměrování „pomalých“ a „rychlých“ snímků dosahují fantastických výsledků a někdy až dvojnásobných výkonů oproti svým jednoprocesorovým obdobám, přestože výsledný dojem při hraní je podstatně horší

Jednou z možností, jak microstuttering potlačit, je zapnutí vertikální synchronizace, která (v ideálním případě) zajistí pravidelné střídání snímků. Aby to fungovalo, musí grafika snímky zvládat připravit ještě před překreslením obrazu. Pokud to nestihne, musí se překreslení vynechat a čeká se na další, kvůli čemuž klesá výkon. Se zapnutou vertikální synchronizací také nelze porovnávat výkon, protože monitor karty často brzdí a ty nerenderují více snímků, než dokáže zobrazit.

S příchodem GeForce GTX 690 Nvidia představila ještě další technologii – frame rate metering – která by měla microstuttering potlačit. GeForce GTX 690 má mít „měřící mechanismus“, který řídí plynulost toku jednotlivých snímků.  V případě, že by hrozilo střídání krátkých a dlouhých snímků, prodlouží dobu zobrazení krátkého snímku tím, že pozdrží vykreslení toho následujícího. Jak se to povedlo, se dozvíte z grafů.

Eyefinity a Surround: extrémní grafiky pro extrémní rozlišení

Vyšší rozlišení je u výkonných karet zajímavější, protože se dá předpokládat, že se po výkonné kartě budou ohlížet především ti, kteří se nespokojí jen s jedním monitorem v plném HD rozlišení. Jen málokdo bude pořizivat grafiky za dvacet tisíc, aby na ně připojil starou devatenáctku s rozlišením 1680 × 1050 bodů.

I na panelech s rozlišením 1920 × 1080 bodů se většina hráčů spokojí i s kartami střední a nižší střední třídy; ostatně jejich výkon je dostatečný pro hratelné snímkové frekvence u většiny her, které vycházejí, a i u těch nejnáročnějších stačí snížit detaily.

Testovací sestava

Jako testovací platforma posloužila základní deska Gigabyte X79-UD5 s BIOSem F10. Procesor je šestijádrový Core i7-3960X s TDP 130 W, který je přetaktovaný na 4,2 GHz při 1,36 V. Asistuje mu 16GB kit operačních paměti DDR3 od Kingstonu.

  • základní deska: Gigabyte X79-UD5
  • procesor: Core i7-3960X (deaktivovaný HTT, C1E, EIST), 4,2 GHz na 1,36 V
  • chladič CPU: Noctua NH-D14
  • paměti: 4× 4 GB Kingston DDR3 KHX2133C11D3K4/16GX
  • zdroj: Enermax Revolution 85 ERV920EWT-00, 920 W
  • pevný disk: Intel SSD 510 (250 GB)
  • skříň: Gelid DarkForce
  • operační systém: Windows 7 x64

Gelid Darkforce

Karty ve srovnání

U Radeonu šlo o nedávno testovanou HD 7970 OC do Sapphire s dvojicí ventilátorů na výkonnějším 1000MHz  profilu kombinovanou s referenční HD 7970 přetaktovanou na stejné takty, a ve srovnání je ještě referenční GeForce GTX 680 na ovladačích 304.48.

Pokud máte pocit, že by se mělo srovnávat spíš s referenční HD 7970, vězte, že dvě přetaktované HD 7970 OC jsou v tomto případě pro sronvání adekvátní, cenou mají ke GTX 690 mnohem blíže. Šlo by to řešit i referenční HD 7970 GHZ Edition, tu jsem ale ve dvou kusech k dispozici neměl.

Radeony jsou testované na ovladačích Catalyst 12.7 beta . GeForce GTX 690 je testovaná na betaverzi ovladačů označené 304.79.

Co v grafech najdete?

Pro grafy jsem povětšinou použil logy z měření pomocí aplikace FRAPS – záznam průměrných snímkových frekvencí po sekundě a podrobnější log s frametimes, neboli časy, potřebné k vykreslení jednoho snímku.

Hodnoty pro jednotlivé snímky pak z podstatně podrobnějšího souboru, do kterého FRAPS zaznamenává časy vyrenderování jednotlivých snímků (názvy končící na frametimes.csv).

Tyto hodnoty (udávané v milisekundách) jsem přepočítal do podoby snímků za sekundu, na něž jsme z grafů s průběhem snímkové frekvence zvyklí. V grafech tedy hodnota na ose Y v daném bodě odpovídá snímkové frekvenci ve fps (snímcích za sekundu).

 

Grafy vypadají zdánlivě jako klasické spojnicové, ve skutečnosti jde o parametrické grafy (v Excelu nazvané „bodový XY se spojnicemi“). Každý bod má zadané souřadnice X a Y a jimi určenu polohu na vodorovné i svislé ose – na ose X je to čas, ve kterém se snímek zobrazil, na ose Y aktuální snímková frekvence.

V grafech jsou většinou tři datové řady – modrá, což je snímková frekvence ve fps na každý vyrenderovaný snímek, dále červená, což je průměrná snímková frekvence uváděná v logu z FRAPSu s průměrnými fps po sekundách (obvykle se používá pro grafy s průběhem snímkové frekvence) a konečně zelená křivka, která přibližně odpovídá podobnému řešení s jedním GPU. Pro dvouprocesorovou GeForce GTX 690 je to GeForce GTX 680, pro dva Radeony HD 7970 v CrossFire je tou alternativou jedna karta. Výsledky jednoprocesorových karet chybí u testů v Eyefinity a Surroundu, protože je při rozlišení 5760 × 1080 bodů na nové sestavě ještě nemám otestované.

Aliens vs. Predator

Aliens vs. Predator

Scénu z úvodu hry jsme nově nahradili samostatným benchmarkem, který je na internetu k dispozici ke stažení zdarma. Běží pouze v režimu DirectX 11 a je o poznání náročnější než náš původní test.

Pro snadnější testování existuje utilita AvP benchmark tool, tu stačí nastavit takto a spustit test:

 

U Aliens vs. Predator jsem vygeneroval hned dvě sady grafů, i když je v obou sadách totéž měření. Důvodem byly Radeony, na kterých se v rychlém sledu za sebou střídaly snímky s rychlostí kolem 40 fps se snímky s 600 fps. Zatímco u GeForce je

Protože hra není měřená frapsem a do logu zaznamenává pouze časy jednotlivých snímků, je ve většině grafů jen modrá křivka. Pouze do grafů v rozlišení 1920 × 1080 jsem z logů dopočítal i průběhy průměrných fps jednočipové karty.

Na další sadě je pak osa shora omezená na necelých 200 fps. Díky tomu je lépe vidět průběh sníkové frekvence u GTX 690, u Radeonů už je rychlejší snímek daleko mimo graf. Ten pomalejší se potom vykresluje rychlostí jen pár fps nad jednou kartou.

Battlefield 3

Battlefield 3

Battlefield testuji s maximální úrovní detailů, výjimkou je pouze deaktivovaný režim vyhlazování MSAA, který kvůli náročnosti enginu zvládají rozumně jen nejvýkonnější karty. Vyhlazuje se tedy pouze pomocí FXAA. Testuje se 70 s dlouhý úsek po začátku druhé mise Operation Swordbreaker po vystoupení z transportéru.

U Battlefieldu 3 fungovalo vyhlazování průběhu i na třech monitorech.

 

Crysis Warhead, Crysis 2 – mapa Alien Vessel

Crysis Warhead

Benchmark z Crysis Warhead neukládá průběhy (navíc jde o timedemo, takže se délka testu liší v závislosti na výkonu karty a na náročnosti nastavení). Takže tady máme jenom průměry.

K otestování výkonu v Crysis: Warhead používám utilitu Framebuffer Crysis Warhead Benchmarking Tool 0.31. Aby bylo měření kompatibilní s ověřovaným (ranked) benchmarkem, nechávám volbu na mapě ambush a implicitním čase (v tomto případě noc). Používám rozhraní DirectX 10 a zkouším jak nastavení Gamer (hráč, odpovídá detailům high v původním Crysis), tak Enthusiast (very high). Beru výsledek druhého měření, kdy už je hra načtena v paměti. Měření jsou opakovatelná s minimální odchylkou.

Crysis 2, mapa Alien Vessel

Při pohledu na graf průběhu u Radeonů HD 7970 v plném HD rozlišení v Crysis 2 jsem nevěřícně zíral, že je průběh nezvykle klidný a vyrovnaný podobně jako u GeForce GTX 690.

A pak jsem se zděsil, když jsem si uvědomil, čím to ve skutečnosti je. Crysis 2 jsem měl až dosud (poté, co se AMD nějak popralo s výkonem Radeonů s teselací) za jeden z mála titulů zajímavých na testování, zánovní engine je nacpaný moderními technologiemi, a je tak náročný, že dá zabrat i nejvýkonnějším kartám.

Crysis 2 má podle všeho framerate cap na 100 fps. Či chcete-li česky, maximální zobrazovací frekvence ve hře je omezená na 100 snímků za sekundu. Najednou začalo dávat smysl i horší škálování výkonu u SLI a CrossFire, které u her náročných na grafiku nebývá obvyklé.

Vyplývají z toho dvě věci:

minimálně některé části hry se už v současnosti nehodí na testování nejvýkonnějších grafických řešení, tedy konfigurace se dvěma a více spřaženými čipy GK104 či Tahiti v rozlišení 1920 × 1080 bodů. Hra se alespoň v první lokaci držela téměř po celou dobu na hranici 100 FPS, k poklesu výkonu docházelo spíš výjimečně a často šlo spíš o zadrhávání hned po načtení úrovně (snad kvůli načítání textur či objektů).

Pokud neexistuje způsob, jak toto omezení obejít, je stávající generace grafik možná ta poslední, u které se dají výkonnější karty v této hře testovat.

V singleplayeru jsou měřené hned dvě scény, prvních 60 sekund z mapy Alien Vessel, a druhá (na následující straně) a 105 sekund z úvodu mise na mapět City Hall.

 

Hra má doinstalovaný patch s podporou DirectX 11 a hires pack textur. Detaily jsou nastavené na maximum.

 

Crysis 2, mapa City Hall

Crysis 2, mapa City Hall

Druhá mapa City Hall je podstatně náročnější, tam už si i ve full HD karty o strop jen tak lehce škrtly spíše ke konci (byť se kvůli nevyrovnanému vykreslování snímků přes tu hranici každý druhý snímek přehoupne).

Největší zásluhu na náročnosti má možná úvodní simulace bokehu. U GTX 690 je průběh na jednom monitoru celkem vzorný, na třech se to už v rozlišení 5760 × 1080 bodů trošku rozjíždí, ale karta to vždy po krátké chvilce srovná, aby se mohl za chvíli rozjet zase. Ve sronvání s Radeonem je to ale podstatně lepší a je to znát i na hratelnosti.

 

 

A konečně průměry, podle kterých by výsledky měření i hodnocení vyznělo úplně jinak.

DiRT Showdown

DiRT Showdown

Dirt Showdown se měří vestavěným benchmarkem, který do logu průběhy neukládá, takže tady vám opět nabídnu jen ty průměry.

Nastavení benchmarku odpovídá zveřejněnému srovnávacímu testu výkonu grafických karet. Shodou okolností se chvíli před uvedením GHz edice Radeonu HD 7970 objevil i patch, u kterého již lze ze hry aktivovat Global illumination počítanou pomocí OpenCL

Ještě připomínám, že na vývoji hry spolupracovalo AMD a i když hra běží na stejném enginu jako Dirt 3 nebo F1 2011, přibyly v ní nové techniky pro osvětlení scény, které jsou nejspíš šité na míru nové generaci Radeonů a (možná zatím) špatně optimalizované pro jiné karty. Zejména se zapnutím „global illumination“ se výrazně propadá snímková frekvence nejen u konkurenčních GeForce, ale i Radeonů předchozích generací. Naměřené výsledky se výrazně liší od výsledků karet v jiných hrách.

U dvouprocesorové GTX 690 se podivné chování Dirtu dostává na novou úroveň – u dvou ze tří okruhů se výkon karty propadá pod výkon jednoho čipu. Nepomohlo ani opakované měření. Soudě dle nárůstu výkonu v prvním z testů SLI funguje, ale na jiných okruzích už něco zlobí.

Testuji ve dvou nastaveních, v prvním jsou téměř všechny položky s výjimkou Global Illumination nastavené na maximum (s GI hru zvládají jen nejvýkonnější Radeony), ve druhém už je i GI zapnutá.

Jinak metodika odpovídá srovnání výkonu grafických karet, testuje se na třech okruzích, první je standardní benchmark, u kterého jsou kvůli opakovatelnosti měření odstranění soupeři a další dva odpovídají náročnějším okruhům, které lze měřit automatickým benchmarkem.

 

 

 

Max Payne 3, kapitola 5, checkpoint 2

Max Payne 3, kapitola 5, checkpoint 2

Maxi Paynovi jsme už věnovali samostatný článek, tady jsou u GTX 690 výsledky přeměřené na novější verzi ovladačů. Výsledek je obdobný. První testovaná lokace se ještě chová obstojně, ve druhé scéně na další straně už je to podstatně horší, u obou karet. Ale pokud si vzpomínáte, u ní se framerate místy rozsypal i na jednočipových kartách (tam by vině mohly být i prostřihy s pohledy z několika kamer a „televizními“ efekty).

Také Max Payne 3 je testovaný stejnou metodikou jako ve srovnání výkonu grafických karet. Téměř všechna nastavení jsou na maximu, výjimkou je snížené rozlišení map pro stíny (s nejvyšší kvalitou stínů by nebylo možné měřit v rozlišení 2560 × 1600 bodů karty s 1 GB paměti). Z obdobného důvodu a také kvůli velkým nárokům na výkon karty je deaktivované náročnější vyhlazování MSAA, hrany jsou vyhlazované pouze pomocí FXAA..

Výkon měřím FRAPSem po dobu 38 sekund ve dvou náročných lokacích – na druhém checkpointu z páté kapitoly a na druhém checkpointu ze sedmé kapitoly.

 

 

Max Payne 3, kapitola 7, checkpoint 2

Max Payne 3, kapitola 7, checkpoint 2

 

Metro 2033

Metro 2033

U Metra jsou výsledky z vestavěného benchmarku. Ten ukládá log s časem jednotlivých snímků, průběhy průměrných snímkových frekvencí by ale bylo nutné dopočítat, proto je v grafech jen modrá křivka. V nějakém dalším testu snad zbude trochu času, abych to udělal.

Testování v Metro 2033 doznalo oproti dřívější metodice jednu podstatnou změnu. Hru už netestuji ručně, ale pomocí vestavěného benchmarku.

Nastavení odpovídá nedávnému velkému srovnání 16 grafických karet.

Testuji v nabízené lokaci Frontline. V Metro 2033 netestuji nejnáročnější nastavení, jak již psal ve velkém srovnání 16 karet Mirek, MSAA je spíše na škodu (ve hře rozmazává tak, jakoby šlo o nějaký postprocessing filtr a ne běžný multi-sampling) a tudíž používám pro změnu zase skoro neznatelné AAA. Vypnuta je výkon neskutečným způsobem žeroucí funkce DOF (Depth Of Field, hloubka ostrosti), jelikož to podle diskuzních fór nejspíše pro hratelné snímkové frekvence udělá většina lidí.

S.T.A.L.K.E.R.: Call of Pripyat Benchmark

S.T.A.L.K.E.R.: Call of Pripyat Benchmark

U Call of Pripyat také testujeme vestavěným benchmarkem. I když ukládá i reporty s časy jednotlivých snímků, bohužel mají formát, který je trochu koplikovanější na zpracování, takže jsem je zatím nepřebíral.

Nastavení testu je shodné s předcházející metodikou, liší se pouze v tom, že už nadále testuji pouze dvě náročnější nastavení.

Pro testování této moderními technologiemi nabité hry používám samostatný benchmark. V něm pak celkové nastavení Ultra, Enhan. full dynamic lighting s MSAA for A-teste objects (anti-aliasing transparentních textur), SSAO Mode nastaveným na HDAO, kvalitou na Ultra (verze Compute Shader), zaplou teselací i CHS (Contact hardening shadows).

 

Průměrný výkon

Pokud jste se grafy prokousali až sem, asi je vám jasné, že v tomhle případě nadělá souhrnný graf s průměrnými výsledky víc škody než užitku. A pokud jste na tuto kapitolu klepli hned po úvodní, tak se pěkně vraťte a projděte si i ty průběhy, abyste věděli, proč.

Užitečné mohou být snad z jediného důvodu – pokud srovnáte výsledky Radeonu a GTX 690 při stejném rozlišení je na nich vidět asi jediná větší a známá slabina GTX 690 – s rostoucím rozlišením ztrácí výkon rychleji než highendové Radeony.

U každé hry počítáme celkový průměr ze všech měření, který následně započítáváme do celkového průměru. Každá hra je tedy v celkovém výsledku započtena stejnou vahou. Protože porovnáváme nejvýkonnější karty, z celkového průměru jsem tam, kde u her testujeme více nastavení detailů (nemyslím tím rozlišení), vypustil méně náročná nastavení, která používáme pro porovnávání slabších karet.

Jako základ, od kterého se počítá výkon dalších karet, slouží vždy nejvyšší skóre dosažené u všech testovaných karet.

Obvyklé grafy s průměry tu mám zatím spíše pro zajímavost, testovaných her je zatím mnohem méně než obvykle, takže každá odchylka od obvyklého průměru (jmenovitě především DiRT Showdown, ale platí to také pro Aliens vs Predator) má při srovnání různých architektur a čipů výrazný vliv na celkový průměr.

Uvidíme také, jak na mizerný výkon GeForce v ovladačích zareaguje Nvidia. Je pravděpodobné, že poté, co se hra objevila v testovacích metodikách, nezůstane lhostejná. Ještě připomenu, že třeba po vypuštění Dirt 3 byla situace podobná, tehdy to ale bylo bez výrazných novinek v enginu a Nvidia zareagovala poměrně rychle.

Závěrečné shrnutí

Předně musím zdůraznit, že frame rate metering nefunguje dokonale (a stále se na něm pracuje), kdyby existovala jednoprocesorová karta s obdobným nebo o malinko nižším průměrným výkonem, bude na tom díky hladšímu průběhu ve výsledku lépe.

Podstatná je ale jedna věc: výsledný dojem je lepší než u dvou, byť výkonnějších karet (a platí to nejen pro dva Radeony HD 7970 v CrossFire, ale i pro SLI ze dvou karet GeForce GTX 680).

Ve srovnání se dvěma spřaženými kartami je to výrazný posun k lepšímu a také dostatečně pádný důvod, proč při zvažování podobného extrémního řešení GTX 690 upřednostnit před dvěma GTX 680 nebo HD 7970 – tedy minimálně pokud se na tom v dohledné době něco nezmění a Nvidia frame rate metering nerozběhá i na běžném SLI.

Jestli AMD uvede Radeon HD 7990 a podobnou technologii nenabídne, možná tu s jeho vypuštěním budeme mít vlnu nejkontroverznějších a nejrozporuplnějších testů a závěrečných hodnocení, které budou do velké míry záviset na tom, jak moc půjdou recenzenti do hloubky.

I když dvojice přetaktovaných HD 7970 v CrossFire dosahuje hlavně u vyšších rozlišení vyššího průměrného výkonu, ani na třech LCD s rozlišením 5760 × 1080, kde by měla být podle takového hodnocení o třetinu výkonnější než GeForce GTX 690, se s ní nehraje lépe.

Zajímavé je i to, že kvalita vyhlazování snímkové frekvence se u GTX 690 liší titul od titulu a dokonce i lokaci od lokace. Jsem docela rád, že se nepotvrdila domněnka z testu Max Payne 3, že by na třech monitorech v Surroundu framerate metering nefungoval – i když se se třemi výstupy řídící logika evidetně zapotí víc než s jedním panelem a v některých hrách a lokacích to funguje hůř, ve srovnání s „asynchronní“ dvojicí Radeonů (a zřejmě i GeForce) je to i na třech výstupech podstatně lepší.