Nvidia 3-Way-SLI im Test: Wenn drei mehr ist als vier
7/20Das Multi-GPU-Problem (Mikroruckler)
Als praktikablen Richtwert für ein flüssiges Spielgeschehen auf dem Monitor kann man zumeist die magische 30-FPS-Marke nehmen; 30 Bilder pro Sekunde sind normalerweise genug, um Spiele für das menschliche Auge als relativ flüssig zu bezeichnen. In letzter Zeit konnte man in einigen Diskussionsforen aber des Öfteren nachlesen, dass Multi-GPU-System, sprich CrossFire und SLI, trotz der Wiedergaberate von 30 Bildern pro Sekunde ein Spiel offensichtlich nicht mehr flüssig darstellen, es mit nur einer Grafikkarte gar besser spielbar sei. Nachdem dieses „Phänomen“ zuerst nur stiefmütterlich betrachtet worden ist, gibt es mittlerweile genügend Beschwerden, um sich ihm genauer anzunehmen.
Soviel vorweg: Ja, an diesen Behauptungen ist etwas dran und die vielerorts als „Mikroruckler“ bezeichneten Unstimmigkeiten gibt es sowohl auf SLI- als auch auf CrossFire-Systemen – und 3-Way-SLI ist ebenfalls betroffen. Dem Problem auf die Schliche zu kommen ist dabei kein leichtes Unterfangen, denn es tritt nicht in jedem Spiel auf. Darüber hinaus muss die Bildwiederholrate bei etwa 30 FPS oder darunter liegen, damit das Problem überhaupt zu einem als unstetig wahrgenommenen Spielablauf führen kann. Schaffen es zwei Grafikkarten weit über diesem Limit zu bleiben, treten die Ruckler nur noch schwer wahrnehmbar und irgendwann gar nicht mehr auf.
Doch worin besteht das Problem genau? Nehmen wir als Beispiel eine Darstellung mit 30 Bildern pro Sekunde (FPS), bei der eine Einzelkarte alle 33 Millisekunden (eine Sekunde geteilt durch 30 Bilder) ein Bild an den Monitor schickt - ganz so wie es sein sollte. Im optimalen Fall wird das erste Frame nach 33 Millisekunden, das zweite Frame nach 66 Millisekunden, das dritte nach 99 Millisekunden und so weiter fertiggestellt. Auf CF- und SLI-Systemen kann es aufgrund des Problems jedoch dazu kommen, dass die Abstände zwischen den einzelnen Bildern stark variieren. Wird der Abstand zu groß, kann das Auge den Unterschied zwischen den beiden Frames wahrnehmen – das Bild ruckelt. Da hilft es auch nicht, dass einige Bilder in extrem verkürzten Abständen zum Monitor wandern. Was zählt, ist die kritische, obere Grenze.
Praktischerweise kann man das Ruckeln nicht nur im Spiel selber feststellen, sondern mit Hilfe des Tools „Fraps“ auch in Zahlen ausdrücken. Denn Fraps gibt einem nicht nur die Möglichkeit, den FPS-Wert pro Sekunde festzuhalten, sondern ermöglicht es auch, die „Frametimes“ aufzuzeichnen. Die Frametimes geben an, wann genau die Grafikkarte ein fertiges Bild an den Bildschirm schickt. Im optimalen Fall müssen zwischen den Frametimes absolut identische Zeitabstände liegen.
Schauen wir uns zuerst die Frametimes mit einer GeForce-8800-Ultra-Karte in einigen aktuellen Spielen etwas genauer an.
- 1, 0.000
- 2, 34.747
- 3, 71.986
- 4, 109.881
- 5, 148.041
- 6, 186.736
- 7, 225.986
- 8, 266.376
- 9, 306.964
- 10, 347.807
- 11, 388.153
- 12, 426.821
- 13, 464.594
- 14, 502.986
- 15, 542.036
- 16, 581.341
- 17, 621.380
- 18, 662.921
- 19, 705.532
- 20, 747.260
- 21, 788.753
- 22, 829.936
- 23, 870.366
- 24, 909.739
- 25, 949.861
- 26, 990.201
- 27, 1029.518
- 28, 1068.456
- 29, 1107.191
- 30, 1146.055
- 1, 0.000
- 2, 31.854
- 3, 67.916
- 4, 103.904
- 5, 140.220
- 6, 176.189
- 7, 212.990
- 8, 248.891
- 9, 285.348
- 10, 321.764
- 11, 358.081
- 12, 394.299
- 13, 432.302
- 14, 467.433
- 15, 504.026
- 16, 540.221
- 17, 576.033
- 18, 613.065
- 19, 649.596
- 20, 686.160
- 21, 722.416
- 22, 758.882
- 23, 795.054
- 24, 831.708
- 25, 868.484
- 26, 904.569
- 27, 941.016
- 28, 977.803
- 29, 1013.691
- 30, 1050.465
- 1, 0.000
- 2, 37.770
- 3, 78.190
- 4, 118.785
- 5, 159.128
- 6, 199.223
- 7, 238.781
- 8, 278.578
- 9, 318.546
- 10, 358.700
- 11, 399.147
- 12, 439.492
- 13, 480.121
- 14, 520.447
- 15, 560.646
- 16, 600.821
- 17, 640.931
- 18, 680.912
- 19, 721.101
- 20, 761.360
- 21, 801.723
- 22, 842.086
- 23, 882.172
- 24, 921.916
- 25, 961.282
- 26, 1000.414
- 27, 1039.679
- 28, 1079.157
- 29, 1118.621
- 30, 1157.779
- 1, 0.000
- 2, 28.680
- 3, 59.544
- 4, 90.339
- 5, 121.362
- 6, 152.125
- 7, 183.069
- 8, 213.924
- 9, 244.947
- 10, 275.690
- 11, 306.658
- 12, 337.419
- 13, 368.225
- 14, 399.140
- 15, 430.032
- 16, 460.890
- 17, 491.732
- 18, 522.644
- 19, 553.411
- 20, 584.288
- 21, 615.031
- 22, 645.895
- 23, 676.676
- 24, 707.570
- 25, 738.421
- 26, 769.328
- 27, 800.227
- 28, 831.019
- 29, 861.831
- 30, 892.693
Wie man gut erkennen kann, sind die Frametimes bei nur einer Grafikkarte gleichmäßig und die Bilder werden in einem etwa gleichen Abstand an den Monitor weiter gegeben. Dadurch macht das Spielgeschehen einen flüssigen Eindruck. Kleinere Abweichungen sind zwar vorhanden, sie sind aber zu gering, um negativ auffallen zu können.
Doch nun zu den Frametimes auf einem SLI-System mit zwei Grafikkarten in denselben Anwendungen und Szenen, erneut bei etwa 30 Bildern pro Sekunde.
- 1, 0.000
- 2, 23.852
- 3, 141.431
- 4, 172.315
- 5, 289.292
- 6, 316.419
- 7, 429.893
- 8, 457.994
- 9, 569.877
- 10, 595.085
- 11, 703.886
- 12, 723.949
- 13, 834.057
- 14, 862.275
- 15, 973.158
- 16, 999.731
- 17, 1109.856
- 18, 1134.767
- 19, 1242.693
- 20, 1255.905
- 21, 1268.602
- 22, 1369.342
- 23, 1390.530
- 24, 1495.108
- 25, 1517.049
- 26, 1624.498
- 27, 1647.227
- 28, 1755.700
- 29, 1779.890
- 30, 1888.826
- 1, 0.000
- 2, 40.943
- 3, 102.529
- 4, 114.838
- 5, 166.073
- 6, 211.363
- 7, 274.604
- 8, 286.537
- 9, 338.654
- 10, 383.529
- 11, 447.242
- 12, 459.333
- 13, 510.921
- 14, 557.109
- 15, 619.876
- 16, 631.134
- 17, 684.587
- 18, 729.112
- 19, 793.434
- 20, 805.762
- 21, 858.035
- 22, 902.993
- 23, 966.725
- 24, 978.658
- 25, 1030.715
- 26, 1077.172
- 27, 1140.904
- 28, 1152.197
- 29, 1205.327
- 30, 1250.726
- 1, 0.000
- 2, 54.856
- 3, 75.197
- 4, 130.970
- 5, 150.576
- 6, 206.774
- 7, 225.799
- 8, 281.971
- 9, 302.134
- 10, 357.303
- 11, 377.901
- 12, 432.673
- 13, 451.768
- 14, 506.742
- 15, 525.845
- 16, 580.161
- 17, 599.096
- 18, 652.776
- 19, 671.914
- 20, 725.692
- 21, 744.855
- 22, 798.302
- 23, 816.765
- 24, 870.119
- 25, 888.456
- 26, 941.678
- 27, 959.734
- 28, 1012.897
- 29, 1032.301
- 30, 1085.170 31, 1104.379
- 1, 0.000
- 2, 29.708
- 3, 65.708
- 4, 96.739
- 5, 132.596
- 6, 163.725
- 7, 199.488
- 8, 230.366
- 9, 266.749
- 10, 297.467
- 11, 333.589
- 12, 364.241
- 13, 400.674
- 14, 430.960
- 15, 467.804
- 16, 498.121
- 17, 534.565
- 18, 564.961
- 19, 601.564
- 20, 631.885
- 21, 668.658
- 22, 698.992
- 23, 735.403
- 24, 766.044
- 25, 802.496
- 26, 833.061
- 27, 869.425
- 28, 899.889
- 29, 936.501
- 30, 966.830
In Stalker sind die Frametimes mit zwei Grafikkarten zwar nicht mehr ganz so gleichmäßig, allerdings sind die Differenzen minimal. So schwanken die Abstände immer im Bereich von 30 bis 35 Millisekunden, was im Spielverlauf aber nicht negativ auffällt. Stalker ist also eines der Spiele, in denen das Ruckeln nicht existiert.
Anders hingegen sieht es im 3DMark06 aus. Der Benchmark zeigt nicht nur extrem schwankende Zeitabstände in Fraps, er flackert auch ebenso unrund über den Bildschirm. Laut Fraps geben die Grafikkarten das erste Bild nach etwa 24 Millisekunden, das zweite nach 141 Millisekunden, das dritte nach 172 und das vierte Frame nach 289 Millisekunden an den Monitor weiter. Es hat also bis zum ersten Frame nur 24 Millisekunden, bis zum zweiten Frame aber schon viel längere 117 ms gedauert. Das dritte erscheint nach weiteren 31 ms, das vierte nach erneut 117 ms.
Da der 3DMark06 nicht unbedingt eine große Aussagekraft über das Verhalten in Spielen besitzt, haben wir uns die Frametimes auch noch in Call of Juarez und in Clive Barker's Jericho angeschaut – leider mit demselben Ergebnis. In Call of Juarez erscheint das erste Frame nach 41 ms, das zweite nach 103 ms, das dritte nach 115 ms und das vierte nach 166 ms auf dem Bildschirm. Daraus ergeben sich unterschiedliche Abstände von 41 ms, 62 ms, 12 ms und 51 ms. Ähnliches zeigt sich in Jericho: Dort liegen die Zeitintervalle für die ersten vier Frames bei 55 ms, 20 ms, 56 ms und dann wieder bei 20 ms. Dasselbe verhalten zeigen das heute getestete 3-Way-SLI und CrossFire von ATi.
Und ist eine Lösung für dieses Problem in Sicht? Darauf haben wir zur Zeit leider keine Antwort, da – zumindest offiziell – nicht eindeutig klar ist, worin denn überhaupt genau die Ursache liegt. Sowohl ATi als auch Nvidia kennen das Problem und möchten uns weitere Informationen dazu geben. Bis jetzt haben wir von beiden Chipspezialisten aber noch keine weiterführende Antwort bekommen. René Fröleke, Technischer PR-Manager bei AMD, hat uns bis jetzt immerhin eine kleine Vermutung zu diesem Problem gegeben.
Seiner Meinung nach wäre es möglich, dass die Mikroruckler kein Problem des Treibers oder der Multi-GPU-Technik sind, sondern vielmehr der Programmierweise einiger Spielen entstammen. Manche komplexe Objekte werden bei gewissen Rendertechniken nicht Frame für Frame wieder neu berechnet, da dies ein zu großer Aufwand wäre. Wenn nun die eine Grafikkarte das komplexe Objekt fertig berechnet hat und an die andere weitergibt (die somit das Objekt nicht neu berechnen muss), kann diese das Frame früher fertigstellen, womit natürlich eine unruhige Wiedergabe der einzelnen Frames gegeben wäre. Wir bleiben an dieser Sache auf jeden Fall dran.