En løsning søkes

8 okt. 2009
Tags: Computer

Det er nå 3. dagen med fundering over dette merkelige ytelses-tapet ved doble kort i crossfire. Konklusjonen så langt, er at hovedkortet med sin deling på 16x/4x PCIexpress høyst trolig noe å si, men i den forstand at jeg ville oppnådd la oss si 1,8x økning i motsetning til 1,3x økning. Det forklarer ikke en ytelse på nærmere 0,3x - 0,5x ytelsen av ett kort. At 3Dmark06/Vantage rapporter en god økning, er helt i tråd med denne testen der tomshardware sjekker ytelses-forskjellen på et middels og et high-end skjermkort på forskjellige PCIexpress hastigheter på 1x, 4x, 8x og 16x. (Dette ved å tape dekke til pinnene som de ikke ønsker benyttet).
3DMark ser ikke ut til å hindres av databussen i samme grad som nyere spill gjør, forklart ved at 3DMark får sendt mesteparten av nødvendig data inn i grafikk-koretet før kjøring av hver test.

Det er vanlig å oppgi gjennomsnittlig bilderate/sekund (FPS) for å måle et grafikk-korts ytelse. Man gjør dette ved å spille igjennom en viss tid i kjente spill, men bruker oftest bevegelses-script slik at grafikk-kortet må tegne opp det samme for alle kortene som testes. Dette er en metode som dessverre ofte kommer til kort. Flere og flere har derfor gått over til å rapportere minimum FPS da det som kjent spiller liten rolle om du har 250fps når det skjer lite, og du faller til 40 under heftige dueller (..).
En tester ser ofte også på faktorer som oppløsning og kantutgjevning (Anti-Aliasing) kombinert med innstillingene i selve spillet (alt på "low" versus alt på "very high")
I tillegg har vi effekten av:

  • for svak prosessor, prosessorens påvirkning
  • for lite minne, for tregt minne
  • for lite båndbredde på bussene internt (hovedkortet)
  • optimaliseringer i drivere

Som sagt mange variable å holde orden på. En ting gjennomsnittlig fps og minimum fps ikke sier noe om, er hvordan bilde er spredt i tid. Slik som oppsette mitt er nå, for eksempel med CallOfDuty4, føles det som om bilderaten er veldig lav ved crossfire, selv om gjennomsnittet per sekund er omtrent det samme som ved crossfire avslått. Hvordan kan dette måles?

Her kommer Fraps inn i bildet. Det er et lite gratis program du installerer og kjører mens en 3D-applikasjon kjører. Den kan logge fps/sekund, tiden for hver frame, samt min/gjen/maks. Jeg satt den til "tid for hver frame", startet fra starten av scenen med angrepet på båten (helt i starten) og spilte omtrent likt i en 35 sekunder. Resultatet ser du her:


Oppløsning er 1080p, alt på maks, 0xAA. Det som er tegnet opp, er "delta tid", det vil si "tiden mellom hver frame" Enkeltkort er lyst, crossfire er mørkt.

Dette er spennende: Ser du hvordan enkeltkortet har en meget fin tydelig linje, noe som betyr at bildene er jevnt fordelt over tid. Med crossfire på, ser du at variansen øker betydelig. Som nevnt før, er det ikke disse bildene som kommer raskt etter hverandre som bestemmer "flyten" til spillet. Det er de verste utslagene. Lengden på periodene det ikke tegnes opp nye bilder. Dette er oppsummert i denne tabellen under:


Effektiv tid mellom hvert bilde kan så konverteres til "opplevd" bilderate. Som vi ser, er den langt fra hva den burde være.. men hva er problemet???