# Warum SLI und CrossFire eigentlich nicht sinnvoll sein kann!



## IceIce123123 (25. März 2008)

Hallo allerseits!
Ich sehe da bei Mehrgrafikkartensystemen ein ganz grundsätzliches Problem (neben den aktuellen Micro-Rucklern):

*Beide Grafikkarten rechnen im heute immer verwendeten AlternateFrameRendering-Modus gleichzeitig an verschiedenen Bildern. Das bedeutet aber zwangsläufig, dass während die Grafikkarte A am nächsten Bild arbeitet, die Grafikkarte B schon am übernächsten Bild rechnet. Aber das Spiel kann unmöglich wissen, wie der Spieler sich im nächsten Augenblick bewegt oder was im Spiel passiert, wie kann man da das übernächste Bild sinnvoll berechnen?!?*
Die einzige Möglichkeit die ich sehe ist, dass die angezeigten Bilder immer um ca. 2 frames dem eigentlichen Geschehen "hinterherhinken", und das ist störend und für Hardcore-Gamer absolut untragbar (das bedeutet bei 30fps immerhin einen lag von ca. 60ms) !

Falls da ein Denkfehler sein sollte, klärt mich bitte auf.
Falls aber nicht, was soll dann das ganze SLI- und Crossfire-Getue gerade für Hardcore-Gamer?!


----------



## doceddy (25. März 2008)

Dann haben DualCores das selbe Problem. Und ich will garnicht erst von QuadCores reden   
Also ich kenn mich da nicht so aus, was wo und wann berechnet wird, aber bis jetzt hab ich nichts bemerkt ( spiele hauptsächlich Shooter )


----------



## IceIce123123 (25. März 2008)

doceddy am 25.03.2008 21:59 schrieb:
			
		

> Dann haben DualCores das selbe Problem. Und ich will garnicht erst von QuadCores reden
> Also ich kenn mich da nicht so aus, was wo und wann berechnet wird, aber bis jetzt hab ich nichts bemerkt ( spiele hauptsächlich Shooter )


Jein, Mehrkern-CPUs können nur parallel rechnen, wenn man ihnen gleichzeitig ausführbare, unabhängige Aufgaben (sog. Threads) gibt. Das entspräche auf Seiten der Grafikkarten dem früher auch gebräuchlichen "Split Frame Rendering (SFR)", da haben tatsächlich beide Grafikkarten gleichzeitig an verschiedenen Bereichen desselben Bildes gerechnet. 
Und dabei sollte es in der Tat keine Probleme (wie das im ersten posting geschilderte) geben!

Heutige Grafikkarten rechnen halt fast immer im AFR-Modus hintereinander an verschiedenen Bildern!

Aber man sollte den Prozessor-Vergleich hier besser rauslassen, das sorgt nur für Verwirrung...


----------



## Chris-W201-Fan (25. März 2008)

früher war nicht nur split frame rendering sondern sogar alternierene zeilenberechnung normal

das ist aber mit aktuellen sehr nach am realen physikalischen vorbild angelehnten effekten nicht machbar, 

ich denke so lange sich da nicht noch mal grundlegend was in sachen grafik tut (stichwort raytraycing) wird eine mehrkernarchitektur im grafikbereich eher die ausnahme bleiben und hinter den erwartungen bleiben


----------



## ruyven_macaran (26. März 2008)

IceIce123123 am 25.03.2008 22:16 schrieb:
			
		

> Jein, Mehrkern-CPUs können nur parallel rechnen, wenn man ihnen gleichzeitig ausführbare, unabhängige Aufgaben (sog. Threads) gibt. Das entspräche auf Seiten der Grafikkarten dem früher auch gebräuchlichen "Split Frame Rendering (SFR)", da haben tatsächlich beide Grafikkarten gleichzeitig an verschiedenen Bereichen desselben Bildes gerechnet.



nöp, tut es nicht.
genaugenommen ist afr so ziemlich das unabhängigste, was man in sachen aufteilung machen kann.
das problem ist halt nur, dass eine grafikkarte zu einem zeitpunkt eigentlich nur eine aufgabe hat: ein bild rendern.
und eine aufgabe kann man nicht "verteilen".
cpus dagegen haben meistens ne ganze menge aufgaben - "berechne physik", "berechne KI", "lade irgendwas", "virenscanner will rechenzeite",... - da macht multicore sinn. (bei dx6 und älter karten auch einigermaßen, da wurden viele berechnungen noch pro pixel durchgeführt)

aber ein gewisser lag ist durchaus tollerabel, man kann sowieso nicht jedes bild eine sinnvolle eingabe machen - weil man ja mehrere bilder braucht, um eine bewegung wahrzunehmen, auf die man reagieren könnte.
so hat man ja bereits jetzt n paar ms verzögerung, bis die eingabe überhaupt verarbeitet ist, ein paar ms bis die bildkomponenten mit der eingabe fertig sind,... und vor allem ende oft 2-3 frames, bis der monitor das bild überhaupt darstellt (aber spieler mögen ja overdrive...)
ob die grafikkarte da nun 1 oder 2 fps hinterhinkt, macht gar nicht SO den unterschied, wenn man vsync ohne fps einsetzen will, hat man z.b. auch schon nen extra latenz-frame, dank triple buffer.


problematischer finde ich da schon die sache mit den mirkorucklern...


----------



## IceIce123123 (26. März 2008)

Also, was Du im ersten Teil schreibst is doch im Wesentlichen das, was ich geschrieben habe, mit einer Unklarheit Deinerseits:


> Zitat:
> das problem ist halt nur, dass eine grafikkarte zu einem zeitpunkt eigentlich nur eine aufgabe hat: ein bild rendern.


 Das is sehr vereinfacht und beim SFR eben falsch, hier hat eine Grafikkarte "nur" die Aufgabe, Teile des Bildes zu rendern, wie Du ja dann selber sagst.
Aber um das SFR soll's in diesem Thread ja nicht gehen!


Was den zweiten Teil angeht: Sag mal einem Online-Spieler, dass 50ms höherer Ping egal sind. 
Der lacht Dich aus!!!


----------



## cod4sniper007 (26. März 2008)

IceIce123123 am 26.03.2008 23:07 schrieb:
			
		

> Sag mal einem Online-Spieler, dass 50ms höherer Ping egal sind.
> Der lacht Dich aus!!!


Denkfehler!!! dein Ping wird dadurch nicht um 50ms größer da die Datenverarbeitung zwischen Server und PC (in ms gemessen und als Ping bezeichnet) paralell zum Bildrendering abläuft. Falls du einen Ping niedriger als 50 hast wird der dann auf 50 erhöht. Dazu kommt noch deine Reaktionszeit


----------



## ruyven_macaran (27. März 2008)

IceIce123123 am 26.03.2008 23:07 schrieb:
			
		

> Also, was Du im ersten Teil schreibst is doch im Wesentlichen das, was ich geschrieben habe, mit einer Unklarheit Deinerseits:
> 
> 
> > Zitat:
> ...



also ohne sfr zu besprechen macht der thread wohl keinen sinn 

und 100%iges sfr ist halt nicht möglich - eben weil meine aussage in weiten teilen stimmt.
ein erheblicher teil der geometrie und beleuchtungsberechnungen, die zu "render ein bild" gehören, müssen eben bild-weit erfolgen und können somit nur von einer grafikkarte durchgeführt werden, nicht von zwei.




> Was den zweiten Teil angeht: Sag mal einem Online-Spieler, dass 50ms höherer Ping egal sind.
> Der lacht Dich aus!!!



öhm - 50ms latenz sind nicht 50ms höherer ping. 
wenn alle 25ms ein bild fertig ist, dauert das rendering pro bild zwar 50ms - aber eine single-karte mit gleicher geschwindigkeit wäre auch nur 25ms schneller.
50ms aufschlag durch sli würde bedeuten "alle 50ms ein bild". bei sli wären das 20fps, bei quad-sli sogar nur 10fps.
welcher online zocker mit sli-gespann spielt so?
60+fps sind gefordert und da ist dass dann <20ms aufschlag.
und dass ist zwar schlecht, aber kein beinbruch.
(bin ich hier der einzige, der zu zeiten online war, als man sich über <100ms pings gefreut hat?)


----------



## IceIce123123 (28. März 2008)

Ein letztes Mal zu AFR/SFR:

Das von mir beschriebene Problem taucht *NUR beim (heute üblichen) AlternateFrameRendering (kurz: AFR) auf*, bei dem die zwei Grafikkarten hintereinander an verschiedenen Bildern arbeiten!

Beim SplitFrameRendering (kurz: SFR) rechnen beide Karten an verschienden Teilen desselben Bildes!
SFR wird heute kaum mehr verwendet, ist technisch kaum mehr möglich und hat auch das Verzögerungs-Problem, um das es hier gehen soll, nicht! Also lassen wir das!!!

@ruyven:
Du sagst "100%iges sfr ist halt nicht möglich". Nach meinem Kenntnisstand kann eine Mehrkartensystem entweder im SFR-Modus rechnen, oder eben nicht. Und heutzutage heisst das "eben nicht"! 
Warum bestehst Du dann darauf, darüber zu diskutieren, wenn es nicht mehr verwendet wird?

Zu dem Ping-Vergleich:

Mir ist schon klar, dass man das vorliegende Problem nicht direkt mit einem Online-Ping vergleichen kann, aber etwas reißerisch muss es zwischendurch mal sein! 


> wenn alle 25ms ein bild fertig ist, dauert das rendering pro bild zwar 50ms - aber eine single-karte mit gleicher geschwindigkeit wäre auch nur 25ms schneller


 Kurze Antwort: Da hast Du völlig recht!



> Denkfehler!!! dein Ping wird dadurch nicht um 50ms größer da die Datenverarbeitung zwischen Server und PC (in ms gemessen und als Ping bezeichnet) paralell zum Bildrendering abläuft. Falls du einen Ping niedriger als 50 hast wird der dann auf 50 erhöht. Dazu kommt noch deine Reaktionszeit


 Hm, mal überlegen: Im Online-Spiel biegt einGener um die Ecke. Jetzt sendet Dir der Server diese Information, dabei vergeht die Ping-Zeit. Aber wenn es Dein Rechner weiß, siehst Du es noch nicht auf dem Monitor, denn die Grafikkarten brauchen auch nochmal die besagten 25ms (oder mehr), um das Bild anzuzeigen. Für mich klingt das nach Addition der Verzögerungszeiten, oder irre ich mich da?!? Es is schon spät...


----------



## ruyven_macaran (29. März 2008)

IceIce123123 am 28.03.2008 00:54 schrieb:
			
		

> @ruyven:
> Du sagst "100%iges sfr ist halt nicht möglich". Nach meinem Kenntnisstand kann eine Mehrkartensystem entweder im SFR-Modus rechnen, oder eben nicht. Und heutzutage heisst das "eben nicht"!



man kann einen "sfr-modus" aktivieren (zumindest in der sli-anfangszeit auch manuell wo immer man wollte), aber das ist kein 100%iges sfr für die gesamte berechnung.
ein nicht unerheblicher teil der berechnung -nämlich geometrie, beleuchtung,...- wird in diesem modus nicht zwischen den karten aufgeteilt, sondern von beiden karten durchgeführt, also doppelt berechnet. nur bei rein pixel-bezogenen berechnungen arbeiten beide grafikkarten an unterschiedlichen inhalten ("sf"r)


----------



## adler93 (16. Mai 2008)

Bei Crossfire und SLI wird das Bild doch einfach nur in 2 Teile geteilt. Bei Crossfire manchmal auch in ganz viele Quadrate. Ich weiß gar net was alle gegen Dual GPU haben


----------



## ruyven_macaran (17. Mai 2008)

adler93 am 16.05.2008 21:58 schrieb:
			
		

> Bei Crossfire und SLI wird das Bild doch einfach nur in 2 Teile geteilt. Bei Crossfire manchmal auch in ganz viele Quadrate. Ich weiß gar net was alle gegen Dual GPU haben




das ist der erwähnte sfr (bzw. die zweite option bei ati: supertiling), der heutzutage kaum/gar nicht zum einsatz kommt und nicht annähernd den performancegewinn bringt, denn die gängigen benchmarks mit afr zeigen.

ansonsten fehlen dem verfahren tatsächlich fast alle nachteile von sli -kein input lag, keine mikroruckler,...- aber es bleiben kosten, strom- und platzverbrauch und lautstärke/hitze, denen gegenüber deutlich weniger vorteile -meist geringer leistungsgewinn- stehen. (bei spielen mit z.b. aufwendiger schattenberechnung dürfte der gewinn nahe 0% liegen)


----------



## EmmasPapa (17. Mai 2008)

ruyven_macaran am 27.03.2008 19:26 schrieb:
			
		

> (bin ich hier der einzige, der zu zeiten online war, als man sich über <100ms pings gefreut hat?)



Nö    Ich habe noch Black Hawk Down mit einem 56K Modem gespielt und da war ich schon bei ganz anderen Pings froh .... Und es hat trotzdem ganz gut geklappt


----------



## SuicideVampire (17. Mai 2008)

EmmasPapa am 17.05.2008 15:14 schrieb:
			
		

> ruyven_macaran am 27.03.2008 19:26 schrieb:
> 
> 
> 
> ...



Ich kann Age of Empires 1 mit einem alten 28er Modem und AOL  bieten


----------



## struy (17. Mai 2008)

Ich kenne mich zwar nicht so ganz mit den Grafikkarten aus, aber ein Denkfehler ist da wohl drin.
1. Annahme: 1 Grafikkarte mit 25fps. (ergibt 40ms rechnen/Bild).
Also ist da die Bildausgabe 40ms nach deiner Eingabe.
2. Annahme: 2 Grafikkarten, die unabhängig Bilder berechnen. Pro Grafikkarte sind auch da diese 40ms Verzögerung/Bild, da eine Grafikkarte genau so viel rechnen muss, wie wenn man nur eine hat. Aber nach 20ms wird deine nächste Eingabe getätigt, die dann die andere Grafikkarte berechnet, während das Bild der ersten noch nicht ausgegeben ist. Also hat man keine zusätzliche Verzögerung, sondern doppelt so viele Frames (im Idealfall, da wird es wohl noch einige Engpässe geben, dass es nicht so ist).
Und noch kurz den zeitlichen Ablauf in Worten:
0ms: 1. Eingabe, die von Graka1 verarbeitet wird.
20ms: 2. Eingabe, die von Graka2 verarbeitet wird.
40ms: Ausgabe des Bildes der Graka1, nächste Eingabe wieder von Graka1 berechnet.
60ms: Ausgabe des Bildes von Graka2, nächste Eingabe wieder von Graka2 berechnet.
usw.
Mit einer einzigen Grafikkarte hingegen nimmst du nur die Schritte 0, 40ms, 80ms usw.
Ergo: das ganze Bild wird flüssiger, aber die Zeit von Eingabe zu Ausgabe wird nicht verbessert. Mit einer einzigen doppelt so schnellen Grafikkarte hättest du nur die halbe Lazenz von der Ein zur Ausgabe.
P.S. Dieser ganze Post basiert auf reinen Annahmen, die mir aber schlüssig erscheinen. Falls das ganze doch Bullshit sein sollte, bitte korrigieren  .


----------



## ruyven_macaran (17. Mai 2008)

struy am 17.05.2008 18:51 schrieb:
			
		

> P.S. Dieser ganze Post basiert auf reinen Annahmen, die mir aber schlüssig erscheinen. Falls das ganze doch Bullshit sein sollte, bitte korrigieren  .



die annahmen an sich sollten richtig sein, werden aber durch 3 dinge limitiert

1. ich reagiere auf das, was ich sehe - die 2.eingabe kommt also trotzdem erst nach umsetzung der ersten.
2. wenn man die bisher einzig bekannt lösung für mikroruckler -framelimiter- einsetzen will, wird der berechnungsbeginn z.t. verzögert.
3. 99% der leute dürften sli nicht für eine verdoppelung der framerate einsetzen - denn unter 25fps zockt kaum jemand und über 35fps brauchen die wenigsten. statt dessen wird die zweite grafikkarte verwendet, um bessere einstellungen zu verwenden - und dann hat man nicht mehr alle 20ms ein 40ms bild fertig, sondern alle 40ms ein 80ms bild, an stelle alle 40ms ein 40ms bild. die latenz verlängert sich.

i.d.r. zweifelt ja auch niemand an, dass sli mehr rechenleistung gegenüber einer single-karte bringt. nur dass man diese leistung so gut nutzen kann, dass es den aufwand wert ist.
oder halt sogar die frage, ob sli mit schwachen karten sinnvoller als eine starke karte sein kann - in deinem beispiel dann z.b. eine, die alle 30ms ein bild ausgeben könnte und bei der nur 30ms von ein- zur ausgabe vergehen.


----------



## adler93 (18. Mai 2008)

Sind zwei Grafikkarten wirklich so schlecht? Gibts eigentlich einen Unterschied zwischen Crossfire und SLI ?


----------



## MSIX38 (18. Mai 2008)

adler93 am 18.05.2008 21:23 schrieb:
			
		

> Sind zwei Grafikkarten wirklich so schlecht? Gibts eigentlich einen Unterschied zwischen Crossfire und SLI ?



Klar: Crossfire=ATI; SLI=Nvidia


----------



## adler93 (19. Mai 2008)

MSIX38 am 18.05.2008 21:42 schrieb:
			
		

> adler93 am 18.05.2008 21:23 schrieb:
> 
> 
> 
> ...



Ja schon klar^^ so dumm bin ich auch net. Aber ob das eine besser ist als das andere ?! Weil beim 3DMark sind die meisten CF System schneller als die SLI Systeme.


----------



## totovo (19. Mai 2008)

adler93 am 19.05.2008 10:28 schrieb:
			
		

> MSIX38 am 18.05.2008 21:42 schrieb:
> 
> 
> 
> ...



ich ging immer davon aus das Crossfire besser skaliert als SLI...   
aber da das in diesem Thread sowieso in Frage gestellt wird....  
ich komm bald nicht mehr mit


----------



## EmmasPapa (19. Mai 2008)

totovo am 19.05.2008 10:44 schrieb:
			
		

> adler93 am 19.05.2008 10:28 schrieb:
> 
> 
> 
> ...



Glaubst Du an Gott    Wenn ja, dann bist Du auf der richtigen Fährte. Ist halt alles eine Glaubensfrage. Ich persönlich denke die nehmen sich nicht viel. Mal NVIDIA, mal ATI die besser sind. Im Moment habe ich eine HD3870 X2 verbaut und habe keine Microruckler etc. Hatte aber auch schon 2x8800 GT verbaut. Je nach Spiel ist mal die eine Karte besser, dann die andere.


----------



## ruyven_macaran (19. Mai 2008)

adler93 am 19.05.2008 10:28 schrieb:
			
		

> Aber ob das eine besser ist als das andere ?!



prinzipiell gibt es keine unterschiede.
aber der eine oder andere fanboy wird immer irgendwo die eindeutig bessere umsetzung erkennen.

ggf. hat ati leichte vorteile bei der kommunikation zwischen zwei karten, weil sie ein breiteres interface verwenden.
aber vermutlich hat selbst die treiberprogrammierung/cpu belastung größere auswirkungen.


----------

