PCIexpress er problemet
10 okt. 2009Tags: Computer
For å avklare om PCIe hastigheten er korrelert med ytelsestapet, måtte jeg finne en måte å tvinge det sekundære kortet på 4x hastighet til å rendre. Jeg prøvde først å fjerne crossfire og plugge skjermen på sekundærkortet, men det funket ikke. GPUz rapporterte fortsatt at primærkortet fikk all lasten.
Løsningen var da enkel. La bare sekundærkortet stå i. Maskinen kom seg fint opp, og grafikk-kortet stod i 4x hastighet. Jeg kjørte så opp Call of Duty4, og sannelig var ytelsen langt lavere enn med 16x!
3 tester senere med forskjellig konfigurasjon. Vi ser at crossfire legger seg midt mellom ytelsen til enkeltkortene på henholdsvis 4x og 16x. Tegnet opp for FPS de første 31 sekundene.
Delta frametime plottet opp for de første 31 bildene. "Microstutter" er klart tilstede. Interessant å se hvordan crossfire legger seg "midt mellom" de to andre oppsettene.
Rart at crossfire oppsettet får (16x+4x/2) i stedet for (16x+4x) som ville være mer naturlig. Her er rådata:
Årsaken, sett i etterkant, er at ATI nesten uten unntak bruker Alternate Frame Render metoden for å fordele arbeid mellom kortene. Da må systemet stadig vente på svakeste ledd. Jeg trodde at ATI ville bytte til en annen metode i slike tilfeller der skjermen deles inn i mange kvadrater, der mengden kvadrater belastet hver GPU kan være ulike. Flest til raskeste GPU...