Hlavní stránka Hardware Grafické karty SLI versus CrossFire — podrobné srovnání multi GPU
SLI versus CrossFire — podrobné srovnání multi GPU
autor: Tomáš Šulc , publikováno 22.4.2013
SLI versus CrossFire — podrobné srovnání multi GPU

Ve světě herních grafických karet je jen málo kontroverznějších věcí než zapojení více karet v jednom počítači. Zatímco jedni považují SLI a CrossFire za zlo, kterému je nutné se vyhnout, druzí jej uznávají jako možnou cestu k dosažení maximálního výkonu. Jak je tomu doopravdy, jsme zjišťovali v obsáhlém srovnání založeném na měření latencí.


Podrobné testy grafických karet, které nejsou založené pouze na klasickém srovnání průměrného počtu generovaných fps, jsou v poslední době v módě a i my jsme vám v počátkem března přinesli článek na toto téma. Připomeňme, že pověstný pes je zakopán v tom, že testy průměrného počtu fps neříkají o skutečné plynulosti her vše a v řadě případů jsou nedostačující i časové průběhy frameratu.

SLI versus CrossFire — podrobné srovnání multi GPU SLI versus CrossFire — podrobné srovnání multi GPU
časové průběhy fps

Pro názornou ilustraci vezměme dva časové průběhy fps ve hrách Serious Sam 3: BFE a Metro 2033. Z časového průběhu ve hře Serious Sam 3: BFE je dobře patrné, že se framerate během testování příliš neměnil. Průměrný framerate okolo 73 fps u zelené křivky je proto v tomto případě teoreticky vcelku vypovídající veličinou a lze usuzovat, že hra poběží za všech okolností naprosto plynule. Pokud se však podíváme na graf ze hry Metro, je jasně vidět, že se rychlost vykreslování hry během testování výrazně měnila. Hodnota průměrného frameratu je u zelené křivky okolo 30 fps, což by při stabilním průběhu jako u hry Serious Sam 3 mohlo méně náročným hráčům stačit. Ve hře Metro je však framerate na začátku testu nad 30 fps, v průběhu testu spadne na zcela nehratelných 13 fps a na konci měření se hra vykresluje rychlostí přes 40 fps. Hodnota průměrného počtu fps tedy v případě hry Metro o plynulosti hraní vůbec nevypovídá!

Pokud v analýze plynulosti her půjdeme až na „nejnižší úroveň,“ dostaneme se k tomu, jak rychle se vykreslují jednotlivé snímky v dané hře. Pokud nám k plynulém hraní stačí průměrných třicet snímků za sekundu, měl by se každý snímek vykreslit nejpozději 33 ms po vykreslení předchozího. Pokud se tedy budou snímky vykreslovat po řadě s prodlevami 30 - 31 - 29 - 33 - 32 - 30 - 28 - 35 - 30 ms, jde o ideální situaci. Hra se nám bude zdát naprosto plynulá.

Bohužel existují i situace, kdy grafický karta vykresluje snímky se značně variabilními prodlevami a velkými odchylkami. Příkladem může být průběh s prodlevami 20 - 40 - 30 - 60 - 15 - 5 - 30 - 50 - 40 ms. Pokud spočítáme průměrnou prodlevu, dostaneme se k výsledku 32 ms neboli po převrácení 31 fps. Hra by se nám proto měla zdát stejně plynulá jako u předchozího průběhu. Ve skutečnosti tomu tak ale nebude a hra se bude silně trhat. Celý mnou uvedený průběh je totiž dlouhý pouhých 300 ms a pro lidské oko jsou jednotlivé rozdíly v prodlevách nepostřehnutelné. Hra se nám bude jevit jako kdyby celá běžela při latenci okolo 60 ms, tj. pouhých 17 snímků za sekundu!

SLI versus CrossFire — podrobné srovnání multi GPU
průběh frametimes (po najetí myši se zobrazí příslušný průběh časový průběh fps sestavený z těchto dat)

Průměrný framerate za scénu dlouhou pouze třetinu sekundy je u obou průběhů shodně okolo 30 fps. Pokud bychom měli hodnot výrazně více, situace by byla stejná a sestavili bychom z nich časový průběh fps, vyjde z obou měření téměř jistě téměř identický graf. Jak už jsme přitom zdůvodnili, při reálném hraní bude rozdíl v plynulosti na první pohled jasně patrný i naprostému laikovi! Jinými slovy ani časové průběhy fps nejsou zcela věrohodné a mají své limity.

Řešením, jak měřit plynulost her, není sestavovat časové průběhy fps, ale přímo průběhy latencí. V nich se na osu x vynese číslo vykreslovaného snímku a na osu y latence, s jakou byl snímek vykreslen proti předchozímu. Příklad takového průběhu včetně porovnání se z něj sestaveným průběhem fps je ukázán nad odstavcem. Je z něj dobře patrné, že ačkoliv je průměrná latence 27,4 ms a téměř po celou dobu testu se drtivá většina latencí drží pod hranicí 33 ms (30 fps), v praxi celý test naprosto plynulý rozhodně nebyl. Při renderování snímků 400-600 a 2400-2600 mělo velké množství snímků vysoké prodlevy přes 60 ms a framerate tak subjektivně padal až po 20 fps. Pokud se přitom podíváte na časový průběh fps, který byl z těchto frametimes sestaven, žádný takový propad v něm patrný není.

SLI versus CrossFire — podrobné srovnání multi GPU

Grafy naměřených latencí jsou ideální pro subjektivní a podrobné posouzení plynulosti her. Následně je možné je analyzovat a získávat z nich další, na první pohled ne až tak viditelné informace. Sem patří histogramy, grafické průběhy časů nad určitou časovou hranicí anebo percentily. Všechny typy grafů jsem popsal ve svém již zmiňovaném starším článku. Pokud máte o tyto informace zájem, jeho přečtení doporučuji.

Tvůrce programu Fraps Cut, který jsem při zpracování průběhů latencí použil, však přišel ještě s jedním, dle mého názoru nejzajímavějším způsobem analýzy průběhů. K průměrné latenci (average latency) přičítá hodnoty směrodatné odchylky křivky (curve derivation) a analýzu stutteringu (stutterung derivation — laicky řečeno chlupatosti průběhu). Výsledný součet latencí, respektive framerate po převrácení, udává průměrnou rychlost, s jakou hra přibližně poběží pro lidské oko. Hodnota je tedy daleko více vypovídající než prostý údaj průměrného frameratu. Detailnosti samotného průběhu latencí však samozřejmě nedosahuje. Výhodou naopak je možnost přímého a relativně snadného srovnání například většího množství grafických karet.



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