Nieuw op Hardware.Info: Frame-time tests voor GPU's

63 reacties
Inhoudsopgave
  1. 1. Videokaartprestaties 2.0
  2. 2. De seconde ontleed
  3. 3. 99e percentiel
  4. 4. Wat mag je van Hardware.Info verwachten?
  5. 5. Reacties

Videokaartprestaties 2.0

De resultaten van de videokaartbenchmarks op Hardware.Info en vrijwel alle andere collega-websites worden uitgedrukt in fps ofwel frames per second. Hoe meer FPS, hoe sneller de videokaart, hoe beter... toch? Niet helemaal. Om écht te bepalen of een videokaart een game wel of niet soepel kan weergeven is een gemiddelde fps-waarde eigenlijk onvoldoende indicatie: er is meer analyse nodig. Frame-time tests geven de benodigde detailinformatie. Wat dat inhoudt, lees je in dit artikel.

FPS

Om te begrijpen waarom fps-waardes niet het volledige verhaal vertellen, is het van belang om eerst eens te bekijken wat de eenheid fps ofwel frames per second nu precies betekent. De naam zegt het al: het is het gemiddeld aantal beelden per seconde dat een videokaart per seconde kan berekenen gedurende de benchmark.

Het menselijk brein vat snel op elkaar volgende losse beelden op als bewegend beeld. De geleerden zijn er niet helemaal over eens hoeveelbeelden per seconde er nodig zijn voor het menselijk oog om beelden als geheel vloeiend te beschouwen - en het is een discussie die we in dit artikel ook uitdrukkelijk niet willen gaan voeren - maar over het algemeen hoor je dat 25 à 30 fps voldoende is. Bioscoopfilms worden vertoond met 24 beelden per seconde en je hoort toch zelden iemand na een bezoek klagen dat het beeld zo schokkerig was.

Om een game dus volledig vloeiend weer te geven zou de videokaart dus in alle gevallen minimaal rond de 30 fps moeten produceren. Bij games is de framerate echter in tegenstelling tot bij film niet constant. Complexe scènes in een game vergen meer rekenkracht van de GPU dan minder complexe scènes en zullen dus met minder beelden per seconde getoond kunnen worden. Wij houden als vuistregelaltijd de stelregel aan dat je idealiter gemiddeld 60 fps moet halen in een game, zodat voor complexere scènes nog altijd 30 fps haalbaar is.


Het menselijk oog vat elkaar opvolgende stilstaande beelden op als beweging... als er maar voldoende beelden per seconde zijn. (bron foto)

Juist die minimum-fps is eigenlijk belangrijker dan de gemiddelde framerate en zodoende krijgen we ook vaak de vraag waarom we niet naast gemiddelde scores ook laagste fps-waardes kunnen tonen. Op zich zouden we dat kunnen doen: de meeste benchmarks geven naast een gemiddelde waarde ook keurig een minimumwaarde terug. We plaatsen deze opzettelijk niet en wel om twee redenen:

Allereerst kan het zijn dat de minimumwaarde wordt bepaald door een externe factor, die niets met de videokaart te maken heeft. Als om welke reden dan ook het systeem even hikt - bijvoorbeeld door een taak van Windows op de achtergrond - heb je op enig moment een laagste fps-waarde die totaal niet representatief is voor hoe de game draait. Dat zien we geregeld: een gemiddelde score van bijvoorbeeld 150 fps en een laagste score van 16 fps. Als we het zouden publiceren zouden we je als lezer alleen maar op het verkeerde been zetten.

Een belangrijkere reden is dat de minimale FPS-waarde eigenlijk niets zegt over de vraag of een game wel of niet soepel draait. Daarvoor moeten we nóg dieper graven in de benchmark-informatie: we moeten een duik nemen binnen de seconde...

De seconde ontleed

Laten we eerst nog eens heel nauwkeurig bekijken wat fps nu exact betekent. 30 fps betekent dat er gemiddeld 30 beelden per seconde berekend worden. Een laagste meting van 30 fps betekent dat er gedurende het draaien van de benchmarks ergens een seconde was waarin er slechts 30 beelden werden berekend. De ene 30 fps is echter de andere 30 fps niet.

Een seconde met 30 beelden kan immers bestaan uit 30 beelden die elk 33,3 milliseconden duurden om te berekenen. 30 x 33,3 = 1000 milliseconden, ofwel 1 seconde. Maar een ander uiterste is dat 29 beelden lekker snel berekend worden, zeg in 20 ms per stuk, maar dat één frame extreem lang op zich laat wachten, namelijk 420 ms. Reken maar mee: 29 x 20 + 1 x 420 is ook 1000 milliseconden, ofwel één seconde.

Bij de normale manier van benchmarken zou in beide gevallen een resultaat zichtbaar zijn van 30 fps. "Even snel", dus. In de praktijk is situatie één helemaal vloeiend en merk je in situatie twee een zeer duidelijke hapering. Is dit voorbeeld vergezocht? Alles behalve! In de praktijk zien we dat de tijd die het kost om een frame te berekenen extreem kan variëren en dat er juist om de zoveel tijd pieken zijn, omdat op dat moment bijvoorbeeld een hele berg texture-data naar het geheugen van de GPU moet worden gekopieerd.


Twee compleet verschillende situaties, maar allebei gemiddeld 30 fps. Het moge duidelijk zijn welk situatie een vloeiender beeld geeft.

Om te bekijken of een videokaart je echt de mogelijkheid biedt om een game geheel zonder schokken te spelen, moet je dus kijken naar de tijd die het kost om alle individuele frames van een benchmark te berekenen. Worden alle frames binnen de circa 30 milliseconden berekend? Dan is de game 100% vloeiend. 

Met speciale tools als Fraps is het voor ons mogelijk om tijdens benchmarks alle individuele tijdsduren van het berekenen van frame op te slaan. En dat kan leiden tot interessante inzichten.

99e percentiel

Wanneer we een benchmark hebben gedraaid met Fraps op de achtergrond is een lang lijst met rendertijden van alle individuele frames het resultaat. Deze frames in een grafiekje zetten biedt direct visiueel een mooi overzicht van hoe de game draait op de betreffende kaart. Het langst durende frame is een maat op basis waarvan we kunnen bepalen of een game wel of niet soepel loopt.


Een mooi voorbeeld: de rendertijden van de eerste 1500 frames in onze Battlefield 3 benchmarks bij een Nvidia GeForce GTX 680 

Hier geldt echter hetzelfde bezwaar als puur naar minimum fps-waardes kijken: het kan altijd zijn dan een enkel frame gedurende de benchmark veel langer duurt vanwege een reden die noch aan de videokaart, noch aan de game te wijten is. Vandaar dat we op zoek zijn gegaan naar het 99ste percentiel. Statistici zullen meteen begrijpen wat we bedoelen: we bepalen de tijd waarbinnen 99% van de frames van de benchmark berekend kunnen worden. Ofwel: de 1% langst durende frames gooien we weg. Dat betekent concreet dat incidentele pieken verdwijnen, maar vaker voorkomende, structurele pieken wél in de berekening voorkomen.

Is dat 99ste percentiel lager dan 30 ms? Dan draait de game soepel. Ligt de waarde veel hoger? Dan zal je in de praktijk duidelijk horten en stoten te zien zijn.


Ere wie ere toekomt: Tech Report is trendsetter van deze methode.

Tech Report

Ere wie ere toe komt: het idee om benchmarks op deze manier te bekijken, komt niet van ons zelf, maar van onze Amerikaanse collega's van Tech Report. Zij publiceerden in september 2011 een artikel waarin dit hele concept uitvoerig werd uitgelegd. Halverwege 2012 zat ondergetekende met Tech Report hoofdredacteur Scott Wasson in een Starbucks in Portland, toen hij vertelde dat hij het vreemd vond dat zijn nieuwe methode nog niet door andere sites was overgenomen, terwijl die overduidelijk betere, of op z'n minst extra inzichten opleverde dan enkel fps-waardes.

De reden waarom we bij Hardware.Info nog niet eerder naar frametijden zijn gaan kijken, is vermoedelijk dezelfde als waarom andere sites dat niet hebben gedaan en eigenlijk heel simpel: het maakt de tests van videokaarten (nog) veel tijdsintensiever dan tot nu toe. Is het benchmarken van videokaarten op de traditionele methode een kwestie van een bepaalde benchmarks meerdere keren draaien, het gemiddelde van de scores berekenen en die noteren, bij de frame-time tests komt er voor ieder resultaat flink wat Excel-werk aan te pas. 

Scott had echter wel zonder meer gelijk: om een goede vergelijking te maken tussen twee of meer videokaarten zijn fps-waardes alleen eigenlijk niet voldoende. Informatie over frame-tijden maakt een review completer en dus beter.

Wat mag je van Hardware.Info verwachten?

We hebben jullie als lezers van Hardware.Info beloofd dat we als tegenprestatie voor onze vraag om jullie adblockers uit te schakelen geregeld tests zullen gaan publiceren die meer tijd kosten. Velen van jullie hebben hun adblocker al uitgeschakeld en de rest vragen we dat alsnog te doen. Lees het gelinkte nieuwsbericht nog eens door voor alle achtergrondinformatie over dit verzoek.

Als tegenprestatie mag je de komende tijd een drietal head-to-head reviews van twee videokaarten, gebaseerd op frame time tests met vijf moderne games van ons verwachten. In eerste instatie AMD Radeon HD 7970 GHz Edition vs. Nvidia GeForce GTX 680, maar daarna ook AMD Radeon HD 7950 vs. Nvidia GeForce GTX 660 Ti en AMD Radeon HD 7870 GHz Edition vs. Nvidia GeForce GTX 660. We kunnen je alvast verklappen dat je zeker bij die laatste twee reviews interessante resultaten mag verwachten!

Afhankelijk van de reacties zullen we frame time tests in de toekomst ook bij tests van nieuwe GPU's gaan meenemen. Laat ons dus vooral op basis van de drie reviews, die je spoedig op onze site zal kunnen lezen, weten of je tests als deze waardevol vindt.

De eerste frametime review zal binnen enkele dagen op Hardware.Info verschijnen.

0
*