Frametime-Probleme bei Multi-GPU lassen Durchschnitts-Fps sinnlos werden
Mikroruckler, Frametime-Probleme, Micro-Stuttering - das Kind hat viele Namen. Fest steht jedoch, dass viele Nutzer von SLI und Crossfire sich über gefühlt niedrige Fps beklagen, obwohl der Framecounter stimmt.
Quelle: PCGH
Radeon HD 3870 X2 und Geforce 7950 GX2: Probleme mit Mikrorucklern sind nicht zu leugnen.
Das Problem
Multi-GPU-Systemen gelingt oft keine regelmäßige Ausgabe der Frames; es kommt zu großen Zeitintervallen zwischen Einzelbildern - "Mikrorucklern" -, trotz vermeintlich flüssigen Frameraten. Ein Beispiel: Auf Frame 1 folgt nach 10 Millisekunden Frame 2, was einer Kadenz von 100 Fps entspricht. Frame 3 hingegen erblickt erst nach weiteren 40 Millisekunden den Schirm, gefolgt von Frame 4 nach weiteren 10 ms. Die Folge ist fatal: Die "gefühlte" Framerate eines Multi-GPU-Systems liegt im Ernstfall unter der einer Einzelkarte, und das obwohl die angezeigten Fps höher sind. Kritisch ist dieses Verhalten primär bei niedrigen Frameraten, etwa den genannten 30 Fps. Denn je weniger Fps, desto größer sind die möglichen Intervalle zwischen ihnen und umso wichtiger wird eine regelmäßige Verteilung.
Bereits in zwei Artikeln wies PCGH auf das Frametime-Problem, wie die Mikroruckler auch genannt werden, hin:
• Videobeweis: "Mikroruckler" zerstören den leistungssteigernden Effekt von Multi-GPU-Lösungen
• PCGH Exklusiv: Multi-GPU - wenn Mikroruckler zu Makrorucklern verkommen
Quelle: PCGH
S3 Chrome S27: Auch Multichrome zeigt Mikroruckeln.
Das sagen die Hersteller
Quelle: [Fudzilla]
Crossfire X: Crossfire mit vier GPUs verschärft das Problem "Mikroruckler".
Das folgende, vorläufige Statement von AMD erreichte uns zum Thema:
In CrossFire kann Frame 3 erst an Karte A geschickt werden wenn diese mit Frame 1 fertig ist. Frame 4 kann erst an Karte B geschickt werden wenn diese mit Frame 2 fertig ist. Das Einteilen dieser Frames (bzw. der command buffer) wird zumindest unter Vista vom Kernel übernommen, das heisst dieses Verhalten kann auch über den Treiber nicht beeinflusst werden.
Sieht man sich einen Einzelfall an, so könnte man schnell auf die Idee kommen, einfach das Annehmen des zweiten Frames herauszuzögern, damit die Frames sich gleichmäßiger über das Zeitintervall verteilen (dies könnte man wahrscheinlich auch im Treiber lösen, man müsste lediglich die GPU für ein paar Millisekunden als besetzt deklarieren), jedoch weiß man am Anfang eines Frames noch nicht wie lange es dauern wird, diesen zu rendern. Aus dem gleichen Grund schickt der Kernel den nächsten Frame auch erst los, wenn der vorherige fertig ist, damit er zum richtigen Zeitpunkt berechnet wird (sonst entsteht die Gefahr eines Lags).
Wir glauben jedoch, dass Nutzer von CrossFire eher auf höhere Frameraten abzielen (und auch wissen wie diese erreicht werden können), bei denen der gefühlte Effekt dieser Microruckler stark abnimmt.
Auch mit Nvidia stehen wir in Kontakt. Dort bittet man sich jedoch noch etwas mehr Zeit aus, um Ursachenforschung zu betreiben, daher fällt das Statement noch relativ mager aus.
Wir untersuchen derzeit das aufgezeigte Verhalten.
Quelle: PC Games Hardware
Triple-SLI: Auch Probleme in Sachen Mikroruckler (Bild: PCGH)
