Nvidia a FCAT: o skok dále v testech výkonu grafických karet

28. 3. 2013

Sdílet

 Autor: Redakce

FCAT: o skok dále v měření výkonu grafických karet

11. března jsem si udělal celodenní výlet do Londýna. Ráno letiště ve Vídni s mírně opožděným odletem Airbusu 320-200 (kvůli silným větrům v cílové destinaci), dopoledne přistání na letišti Heathrow (i přes odklad odletu to při přistání s Airbusem pěkně mávalo), a dlouhá jízda „taxíkem“ po špatné straně silnice na hotel, kde následovalo (ve velmi úzkém kruhu novinářů) představení nové metodiky pro měření plynulosti grafiky, na které se podílí i Nvidia.

Nvidia FCAT intro Nvidia FCAT intro Nvidia FCAT intro

Po převedení jsme dostali nezbytný hardware a zase rychle na letiště Heathrow a odtud večerním letem do Vídně a domů. Proč to?

Nvidia FCAT intro Nvidia FCAT intro

 

Průměry už nestačí

Řada webů včetně nás koketuje nějaký čas s myšlenkou, že porovnávání výkonu karet jen podle průměrných snímkových frekvencí není zrovna ideální. Řešení postavená na multi-GPU na tuto nedokonalost testovacích metodik vysloveně hřeší – dva grafické čipy dokáží snímky hrnout i dvojnásobnou, takže průměrné skóre vypadá výborně. Řada lidí si ale při používání dvou karet často všimla, že se hra nejeví zdaleka tak plynulá, jak by to podle snímkové frekvence zobrazené na počítadle mělo být. Ale to je jen jeden problém – microstuttering u multi-GPU, o kterém už je nějaké obecné povědomí.

Po uvedení Far Cry 3 se ukázalo, že i u jedné grafické karty s jedním grafickým čipem může být zadrhávání obrazu natolik intenzivní, že si na něj začne stěžovat i široká veřejnost, která si jinak podobných jevů nevšímá (stává se to, ale obvykle se to projevuje v menší míře). Přestože karty ve hře dosahovaly vysokých průměrných snímkových frekvencí, podle kterých by nikdo nehádal, že by s hraním mohl být nějaký problém, kvůli pocukávání obrazu v krátkých intervalech nemohla být o nějaké plynulosti na některých kartách řeč. Celý problém se pak nedá vypozorovat ani z grafů průměrných snímkových frekvencí, ale dokonce ani z grafů s průběhy fps. Důvodem je, že kvůli průměrování z desítek po sobě jdoucích snímků se případné trhání v grafu „vyhladí“. Aby bylo drobné či větší zadrhávání v grafech patrné, tak je zapotřebí jít až na úroveň jednotlivých snímků. I to umí změřit FRAPS a pokud jste četli testy Far Cry 3, World of Tanks nebo srovnání microstutteringu u GeForce GTX 690 a dvou HD 7970 v CrossFire, asi jste už viděli podobné grafy:

Jenže ani grafy z FRAPSu s frametimes, tedy s časy jednotlivých snímků, nejsou pro takové analýzy ideální.

Až na konci cesty, aneb FCAT – Frame Capture Analysis Tool

Nedokonalost dosavadních metodik pracujících se záznamem frametimes tkví v tom, že FRAPS zaznamenává časy snímků příliš brzy, téměř na začátku celé pipeline.

Potom ale následuje řada dalších operací, které mohou vykreslování snímků různě pozdržet. Některé problémy a zdržení, které mohou během renderingu nastat, tedy nezaregistruje. Ještě víc se se skutečností rozchází v případě konfigurací s multi-GPU. Dobrým dokladem toho, že to, co měří FRAPS, nemusí vždy odpovídat tomu, co vidíte na monitoru, je už jen měření výkonu se zapnutou vertikální synchronizací a aktivním triple bufferingem, kdy na monitoru není zobrazených víc než 60 snímků za sekundu a FRAPS přesto může vracet podstatně vyšší výsledky.

Nvidia proto spolu s PC Perspective pracovala na jiné technologii, se kterou by bylo možné analyzovat snímky až na konci celé cesty, na úrovni samotného monitoru. A po dlouhém vývoji ji dostávají k dispozici i ostatní.

 

Nejde o levnou záležitost, jen samotná zachytávací karta DataPath VisionDVI-DL , na které je hardwarová část celého řešení momentálně postavena a kterou Nvidia několika novinářům zapůjčila, vyjde na nějakých čtyřicet tisíc. Dá se vytušit, že taková investice nebude z její strany jen nějaká charita. Výrobce se už dlouhodobě ohlíží i na vyrovnanost snímkové frekvence. Asi nejhmatatelnějším důsledkem je zatím technologie frame rate metering použitá u GeForce GTX 690 a obecně výrazně lepší výsledky řešení postavených na SLI oproti CrossFire (ve smyslu synchronizace snímků při renderingu metodou AFR). V této oblasti tedy Nvidia nejspíš cítí velkou konkurenční výhodu a oslovení novinářů je cesta, jak o ní dát vědět široké veřejnosti. Otázkou je, nakolik má na zveřejnění celé technologie právě teď vliv i to, že se zase začíná mluvit o oficiálním uvedením Radeonů HD 7990 se dvěma GPU.

Soubor nástrojů pro analýzu jednotlivých snímků dostal název FCAT, což je zkratka pro Frame Capture Analysis Tool. Tvoří jej dvě stěžejní části – hardwarová, tedy zachytávací zařízení, a softwarová – soubor skriptů a aplikací, které slouží pro analýzu zachyceného záznamu.

Už samotný hardware, který se používá, jde mimo rámec dosavadní praxe. Oproti klasickému testování pomocí FRAPSu je zapotřebí další sestava, která slouží jen pro nahrávání. Použitá profesionální zachytávací karta DataPath VisionDVI-DL je vybavená vstupním konektorem dual-link DVI a rozhraním PCI Express 4× a zvládá snímat rozlišení 2560×1600 při 60 Hz (dokonce by měla umět i 3840× 2160 při 30 fps). Na rozdíl od levné alternativy v podobě TV tunerů a zachytávacích karet se vstupem HDMI umí pořizovat záznam i v barevném formátu RGB a 24bitové barevné hloubce.

Karta je schopná generovat datový tok až 650 MB/s, jen při nahrávání z plného HD rozlišení je to kolem 240 MB/s. Kvůli následnému zpracování nesmí při záznamu docházet k výpadku snímků, taková nahrávka by se dala jen stěží korektně analyzovat. Znamená to, že je pro záznam zapotřebí nejen rychlé, ale i docela velké úložiště.

A toho jsem se děsil asi nejvíc, v Londýně nám na základně praktických zkušeností totiž předložili tři základní možnosti, jak něčeho podobného dosáhnout – SSD karta do PCI Express (takový minimální základ pro naše potřeby by vycházel na nějakých třicet tisíc), rychlý NAS připojený přes rozhraní Thunderbolt osazený SSD, nebo pole RAID poskládané ideálně ze čtyř rychlých SSD. Obával jsem se, že zařídit něco podobného nebude pro (ve srovnání s ostatními mnohem většími weby z první vlny) malý český magazín v celkem krátké době jednoduché. Proto jsem dvojnásob rád, že se nám nakonec velmi rychle podařilo dohodnout s Kingstonem pro tyto účely zápůjčku čtyř 240GB SSD HyperX 3K. Disky dorazily v pondělí, takže jsem hned po dotestování a vydání recenze GeForce GTX 650 Ti Boost celé záznamové zařízení poskládal aspoň v rychlosti na stole.

Nvidia FCAT intro

Čtyři SSD v RAID 0 jsou momentálně přiškrcené na integrovaném 3,0 Gb/s řadiči z platformy Z77 (pro SATA 6,0 Gb/s má čipset Intelu stejně jen dva kanály), jak se ale zdá, na to, aby sestava zvládala záznam bez výpadků, by i toto řešení mohlo stačit. Zásluhu na tom má i Core i5-3470 s architekturou Ivy Bridge, který už má jižní můstek připojený novou rychlejší generací sběrnice DMI2 a propojení s integrovaným diskovým řadičem je tedy rychlejší než u starších desek a procesorů, které DMI2 neuměly a u kterých byla právě cesta k jižnímu můstku úzkým hrdlem pro řadiče disků i USB 3.0

Nvidia FCAT intro

Jako základní deska posloužila Gigabyte GA-Z77X-UP4 TH, která je vybavená i rozhraním Thunderbolt. To, co je zastrčené ve slotu PCI Express ×16 a na pohled připomíná prehistorické, na spotřebu nenáročné, grafické karty a s minimalistickým pasivem, je ve skutečnosti zmiňovaná zachytávací karta.

Nvidia FCAT intro

Grafika neschází, využívám tu integrovanou v procesoru. Obraz z testovací sestavy se do zachytávací karty dostává trochu složitější cestou, nejprve jde do „hloupého“ aktivního rozbočovače (hloupého proto, že signál z grafické nijak nemodifikuje, pouze jej klonuje) a z něj je vyvedený dále do monitoru a do snímací karty. Karta zaznamenává totéž, co zobrazuje 60Hz monitor (včetně tearingu a necelých snímků při vypnuté vertikální synchronizaci, na tom je vlastně celé testování založené). Teoreticky by mělo stačit i klonování obrazu, kterého je schopná samotná karta, prakticky to ale ubírá něco málo z výkonu.

Zbytek testovací sestavy momentálně tvoří postarší 500GB Seagate Barracuda ES.2 pro operační systém, protože není vhodné odkládací diskové pole využívat zároveň jako systémový disk. Konfigurace disků tedy ve srovnání s dnešní obvyklou praxí vypadá dost absurdně. Sestavu napájí zdroj od Enermaxu, v paměťových slotech jsou „jen“ 4 GB DRR3 ve dvou modulech rovněž od Kingstonu a na tom všem běží 64b verze Windows 7.

Vyhodnocování snímků a softwarová část FCAT

Software FCAT

K tomu, aby se ze záznamu s konstantní snímkovou frekvencí (nejčastěji to bude 60 Hz) při vypnuté vertikální synchronizaci daly zpětně zrekonstruovat doby zobrazení jednotlivých snímků, slouží v principu jednoduchý trik – na jednotlivé snímky se přes overlay (funguje na stejném principu, jako třeba zobrazení fps z FRAPSu nebo OSD v MSI Afterburner) vykreslují po levé straně snímku barevné pruhy. Periodicky se na zaznamenaných snímcích střídá jeden či více barevných pruhů v jednom ze šestnácti základních počítačových barevných odstínů. Většina z nich přesahuje do následujícího zaznamenaného snímku tak, jak karta stíhá překresolvat monitor. Doba zobrazení jednotlivých snímků se pak počítá z toho, jak je tento barevný pruh dlouhý, nebo přesněji z toho, kolik řádků na snímku trvajícím 1/60 sekundy jeden pruh má.

V ideálním případě, kdy je průběh snímkové frekvence hladký a snímková frekvence je vyšší než zobrazovací frekvence monitoru, jsou jednotlivé renderované snímky vykreslené na obraz nějak takto:

Pokud dochází k microstutteringu, při kterém se střídají velmi krátce a velmi dlouze vykreslované snímky, může z jednoho snímku zbýt doslova jen několik řádků. V angličtině se pro takový snímek nejspíše zažije termín runt frame, což se dá do češtiny přeložit třeba jako skrček.

Pro vykreslený obraz má takový snímek jen minimální přínos, tady je ještě zvětšený detail (zřejmě z Battlefieldu 3) s pohybujícím se letadlem.

Ze záznamové karty se ukládá série obrázků do nekomprimovaného AVI. Následně je nutné provést analýzu pomocí utilitky „Extractor“. Ta vygeneruje log, ve kterém je uvedený podíl jednotlivých barevných pruhů (počet řádků dané barvy) na jednotlivých snímcích. Tento záznam dále prochází několika skripty v Perlu, jejichž výstupem je posčítání hodnot z jednotlivých snímů, několik grafů vykreslených pomocí gnuplot a soubory CSV se zjištěnými hodnotami.

Pro příklad se podívejte na výsledek referenční GeForce GTX 650 Ti Boost, který jsem naměřil v Max Payne 3 v rozlišení 1920 × 1080 bodů. V grafu jsou dvě měření. Drobné rozjetí obou průběhů ona konci grafu je dáno tím, že hru měřím ručně.

Takto vypadá výsledek naměřený FRAPSem.

Interpretace výsledků a jejich vyhodnocování (a prezentace v lidské podobě) je něco, co bude ještě nejspíš předmětem diskuzí a dalšího vývoje. Další významnou otázkou je, co se ještě dá považovat za přijatelné nebo plynulé a co už ne. Vše komplikuje fakt, že se shrnutím a zjednodušením naměřených výsledků a snahou nějak je jednoduše porovnávat (třeba v podobných percentilových grafech) se ztrácí podstatné detaily, zejména rozložení problematických snímků v průběhu celého měření.

Další obrovský a nepříliš probádaný prostor se ukrývá za možností zkoumat chování grafik s aktivní vertikální synchronizací. Na rozdíl od situace, kdy se výsledek zobrazuje s obnovovací frekvencí 60 Hz jen na monitoru a člověk nedokáže spoustu věcí postřehnout, lze nahraný záznam zpomalit a sledovat nejen kadenci snímků (tedy to, s jakou pravidelností se objevují na monitoru), ale i to, nakolik jsou změny v obraze mezi jednotlivými snímky rovnoměrné (a nakolik je tím pádem výsledek plynulý).

A konečně – se specializovaným zachytávacím zařízením přibývá i možnost zkoumat a porovnávat kvalitu obrazu tak, jak jde na monitor a ne tak, jak jej vidí utilitky na snímání obrazu. Konkrétně mám na mysli některé filtry z post processingu, které se na snímcích pořízených klasickými metodami neobjevují – nejkřiklavějším příkladem je asi morphological antialiasing od AMD, který se na screenshotech z FRAPSu či MSI Afterburneru vůbec neprojevoval, mohou to ale být i úpravy barevnosti nebo jasu a kontrastu celé scény apod.

Se spoluprací Nvidie na celé metodice se logicky vkrádá otázka, jestli do těchto nástrojů nemohla vpašovat něco, co by poškozovalo konkurenci. Minimálně spoluautor (a zřejmě i iniciátor celého projektu), Ryan Shrout z PC Perspective, v článku k nové metodice testování to vyvrací s tím, že má ke zdrojovým kódům aplikací přístup déle než dvanáct měsíců, neshledal v nich nic závadného a používaný software má být přístupný i dalším lidem už jen kvůli tomu, aby nebyl software, na jehož vývoji spolupracovala Nvidia, považovaný za nedůvěryhodný. Jedinou výjimkou je software Overlay, jehož zdrojové kódy zveřejnit nelze, protože hrozí potíže s patenty, a i v tomto ohledu by mohl pomoci nějaký nezávislý zdroj, který obdobný nástroj vyrobí také (výslovně se nabízí třeba Beepa spolu s týmem podílejícím se na vývoji FRAPS, který s něčím podobným má už bohaté zkušenosti).

Čtrnáct dní, po které zatím hardware máme a které se původně v Londýně jevily jako dostatečná doba na nějaké oťukání celého řešení, se nakonec ukázalo jako šibeniční termín, ať už po stránce shánění potřebného hardwaru, nebo z pohledu času potřebného pro instalaci, odladění, vyzkoušení a vytvoření celé metodiky (a podobně pojala dnešní premiéru FCAT většina oslovených webů, čest výjimkám). AMD i Nvidia totiž během této doby ještě zvládla nečekaně brzo vypustit Radeon HD 7790 a GeForce GTX 650 Ti Boost a většině recenzentů tím hodně zkomplikovala život.

Práce na nové metodice nejspíš nebude znamenat to, že by testy s průměrnými fps byly ze dne na den odsouzeny k záhubě. Hned tak se jich nezbavíme. Pro hrubé porovnání výkonu karet stále vyhovují a hlavně je celá metodika založená na nich přehlednější, stravitelnější pro čtenáře a nesrovnatelně méně časově náročná na testování i na zpracování výsledků.

Zejména pokud vládnete angličtinou, doporučím vám podívat se ještě na video, které k premiéře FCAT připravil PC Perspective. Na něm je celý proces vidět i dost názorně a naživo.

" width="680" height="383" frameborder="0">

 

Za poskytnutí SSD HyperX 3K a pamětí děkujeme společnosti Kingston

 

bitcoin_skoleni

Za poskytnutí základní desky děkujeme společnosti Gigabyte

 

Za poskytnutí procesoru děkujeme společnosti Intel

 

Za poskytnutí napájecího zdroje děkujeme společnosti Enermax