PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SLI/CF AFR vs. SFR


Chris Lux
2007-07-16, 14:43:39
Hi,
ich möchte mal eine Diskussion zum Thema AFR (alternate frame rendering) und SFR (split frame rendering) anstoßen. Tombmans Aussage im SLI-Lüge Thread (http://www.forum-3dcenter.org/vbulletin/showthread.php?p=5668539#post5668539), wonach derzeit und auch zukünftig SFR praktisch keine Rolle mehr spielen soll, kann ich da gar nicht nachvollziehen. Grob von zusammengefasst: Mit AFR handelt man sich Latenzen ein, die bei niedrigen Frameraten extrem auffallen. Bei SFR muss man Inhalte von Intermediate-Rendertargets (Shadowmaps) zwischen den GPUs verteilen. Beide Techniken haben ihre Vor- und Nachteile. Jedoch ist es meine Meinung, dass SFR der bevorzugte Modus ist, da er am besten skaliert und keine Latenzen mit sich bringt (man denke an 2+ GPUs). Bei AFR kommt dazu, dass wenn man Intermediate-Rendertargets über mehrere Frames unverändert benutzen möchte diese auch an die anderen GPUs verteilt werden müssen. Im nVidia GPU Programming Guide steht auch, dass füer solche Fälle SLI komplett nicht funtionieren soll.

Soweit ich auch im wissenschaftlichen Umfeld gehört habe ist man genau derselben Meinung. Meine eigenen Erfahrungen zeigen auch, dass eher SFR Vorteile bringt und AFR Probleme macht.

Wo seht ihr technische Gründe warum SFR 'angeblich' nichts bringen sollte bei aktuellen Spielen/Anwendungen? Welchen Modus bevorzugt ihr aus welchen Gründen?

-chris

Coda
2007-07-16, 14:52:50
Das Problem ist dass AFR praktisch 100% skaliert wenn es funktioniert und es in den Benchmarks einfach nur auf die Balkenlänge ankommt. Außerdem ist es viel einfacher zu handhaben für den Treiber.

Gast
2007-07-16, 15:23:19
SFR geht so gut wie gar nicht bei Spielen, wenn es über den Treiber geforced wird. Und selbst die paar Profilanwendungen mit SFR funktionieren mit heutigen Treiber nur noch zum Teil. AFR ist recht schön, wenn's funktioniert. Nachteil ist, dass es in manchen Games Stellen gibt, wo plötzlich kein SLi mehr greift oder man im schlimmsten Fall sogar langsamer als mit ner Einzel-Karte ist. Das ist recht ärgerlich. Liegt vielleicht an den SLi-Values. Reines AFR ohne Kompromisse wäre wohl die beste Alternative. Z.B. ID Engines unterstützen reines AFR.

KiBa
2007-07-16, 18:22:45
Ein weiterer Nachteil von SFR ist es, dass Vertex-limitierte Szenen nicht beschleunigt werden können. Trifft bei Spielen natürlich kaum zu...

Coda
2007-07-17, 12:57:51
Kann es begrenzt schon. Der Treiber kann die zu rendernde Geometrie grob cullen.

Neomi
2007-07-17, 14:04:22
Kann es begrenzt schon. Der Treiber kann die zu rendernde Geometrie grob cullen.

Für das "grobe" Culling müßte der Treiber aber die gesamte Geometrie durchgehen, um für den aktuellen Drawcall eine Bounding Box zu generieren. Das Ergebnis könnte er abhängig von der benutzten Vertexrange noch cachen (und müßte diesen Cache verwerfen, sobald der Buffer upgedated wird), dann geht dafür nicht so viel Performance drauf. Das funktioniert allerdings nur mit Fixed Function Vertexprocessing. Für einen Vertexshader läßt sich das Ergebnis aber nicht mehr ohne Mithilfe der Anwendung vorraussagen, daher fällt die Möglichkeit flach.

SLI kann unter D3D10 auch in vertexlimitierten Szenen helfen, wenn Predicated Rendering zum Einsatz kommt. Predication kann dann auf jeder GPU einzeln greifen. Unter D3D10 würde vielleicht helfen, wenn die Anwendung beim Zeichnen komplexer Objekte in nur einem Teil des Bildes das Scissorrect passend setzt, dann könnte der Treiber die Drawcalls nur an die vom Scissorrect betroffenen GPUs weiterleiten.

Ein grobes Culling vom Treiber alleine ausgehend halte ich für ausgeschlossen. Es sei denn natürlich, der Treiber "kennt" (da manuell eingeimpft) die Vertexshader und die zu rendernde Geometrie.

Coda
2007-07-17, 14:18:56
Ja okay, ich denke das ist dann evtl. applikationsspezifische Optimierung.

Chris Lux
2007-07-17, 18:35:45
Ein weiterer Nachteil von SFR ist es, dass Vertex-limitierte Szenen nicht beschleunigt werden können. Trifft bei Spielen natürlich kaum zu...
ein sort-first oder sort-middle ist gar nicht so einfach. wie neomi schon schreibt kommen da eine menge probleme mit, bspw. muesste man ja geometry batches, die beide render-nodes betreffen aufteilen oder auf beiden berechnen.

@gast: was ist denn 'reines' AFR?

auch bei allen moeglichen nachteilen oder problemen finde ich immer noch SFR den besseren modus, weil er eben keine latenz einfuehrt. AFR ist vielleicht einfacher, aber wenn es dann mal auf ordentliche rendermaschinen geht (mehr als 2 gpus im sli) ist es nicht akteptierbar, dass x frames einfach verzug sind.

PHuV
2007-07-17, 18:41:11
Doofe Frage, was macht den Crossfire, AFR oder SFR? Hier treten ja die gleichen Probleme auf.

Gast
2007-07-17, 19:45:50
@gast: was ist denn 'reines' AFR?

Mit "reinem" AFR meinte ich ohne irgendwelche Kompatibilitätsbits, damit AFR überhaupt zum Laufen gebracht wird bzw. größtenteils einwandfrei läuft. ID Engines begnügen sich mit "reinem" AFR und SLi läuft afaik an jeder Stelle der Spiele (Quake3, Doom3, Prey, Quake4) rund. Es gibt nämlich auch Games, wo SLi gut läuft, dafür es aber an irgendeiner Stelle im Spiel kläglich versagt, die Frames einbrechen und es anschließend wieder mit Full Power weiterläuft.

KiBa
2007-07-17, 20:13:35
Die beste Lösung ist wohl weder AFR noch SLR, sondern die explizite Programmierbarkeit beider Grafikkarten und Einflussnahme darauf, wie das Bild am Ende zusammengesetzt wird (Blockweise, 2 Hälften oder zeitlich versetzte Einzelbilder usw.). Auch müsste man Resourcen explizit von einer auf die andere Grafikkarte schicken können bzw. Resourcen müssten geshared werden können oder auch nicht. Das verlagert natürlich die Komplexität in den eigenen Programmcode und wäre sicher nicht einfach zu handhaben. Auch sehe ich da Limitierungen in der Verbindung der zwei Karten, pcie1x (ist das noch so bei SLI?) würde da vorne und hinten nicht reichen.

BlackArchon
2007-07-18, 06:46:31
Doofe Frage, was macht den Crossfire, AFR oder SFR? Hier treten ja die gleichen Probleme auf.
Ati versucht, genau wie Nvidia, möglichst überall AFR einzusetzen.

Chris Lux
2007-07-18, 16:13:01
Die beste Lösung ist wohl weder AFR noch SLR, sondern die explizite Programmierbarkeit beider Grafikkarten ...
in etwas eingeschraenkter version war/ist sowas in planung (gewesen?). leider hoert man immer weniger davon, ich denke auch aus genau dem grund, dass es extrem komplex auch auf treiberseite umzusetzen ist.

Gast
2007-07-19, 21:32:44
pcie1x (ist das noch so bei SLI?)

nö, laut der nvidia-skizze zu den GX2-karten ist es eine "PCIe48x"-verbindung.

Vanilla
2007-07-28, 17:52:24
Habe zu den Thema einen Test gemacht mit den Soft Shadows von F.E.A.R.. Interssant zu sehen ist, dass bei eingeschalteten Soft Shadows AFR viel besser läuft als SFR. Ohne Soft Shadows sind beide Verfahren sehr ähnlich. Weiß jemand wieso AFR mit den Soft Shadows so gut zurecht kommt? Sind Soft Shadows eine Vertexberechnung die SFR nicht beherrscht? (wie von KiBa weiter oben geschrieben wurde)

Soft Shadows an:
AFR min. 29 fps - Ø49 fps
SFR min. 17 fps - Ø33 fps

Soft Shadows aus:
AFR min. 32 fps - Ø70 fps
SFR min. 30 fps - Ø72 fps

AnarchX
2007-07-28, 17:56:50
nö, laut der nvidia-skizze zu den GX2-karten ist es eine "PCIe48x"-verbindung.

Wer sie noch nicht kennt:
http://img510.imageshack.us/img510/9035/qslilogiczp9.jpg

Gast
2007-07-28, 19:16:28
X48 wird wohl einfach der Bridge-Chip genannt, der 1x16x auf 2x16x umsetzt. Mehr nicht.

Gast
2007-07-28, 22:18:49
Weiß jemand wieso AFR mit den Soft Shadows so gut zurecht kommt? Sind Soft Shadows eine Vertexberechnung die SFR nicht beherrscht? (wie von KiBa weiter oben geschrieben wurde)

ich vermute mal, dass bei den soft-shadows beim rendering irgendwo die schattenkantenpixel markiert werden und beim post-processing geblurrt werden.

das post-processing funktioniert dann wahrscheinlich nicht auf jeder karte einzeln sondern muss gesamt auf einer karte durchgeführt werden und kann damit nicht von SLI profitieren.

Vanilla
2007-07-28, 23:44:48
Nicht profitieren ist richtig... habe gerade festgestellt dass die unterschiede zwischen AFR/SFR nicht dadurch zu stande kommen dass es mit AFR einen Leistungszuwachs gegenüber einer Singel GPU gibt, sondern dass das SLI mit SFR sehr viel langsamer läuft als eine Singel GPU sobald Soft Shadows aktiviert sind ...

Gast
2007-07-28, 23:50:24
dann läuft aber SLI generell ziemlich schlecht, schließlich hat auch AFR nur 50% vorsprung gegenüber SFR, und das soll dann noch viel langsamer als eine single-karte sein?

Vanilla
2007-07-28, 23:55:55
ja, der Vorsprung von AFR-SLI gegenüber der Singel GPU sind durchschnittlich nur magere 3fps. SLI macht sich da erst mit aktiviertem AA bezahlt. Ist jetzt aber auch Vista ... also vieleicht noch nen bischen "beta".

Gast
2007-07-29, 00:42:03
ok, unter vista läuft SLI ja meistens noch nicht wirklich ordentlich.

dass macht mich gegenüber einer potentiellen GX2 am meisten skeptisch, langsam sollte mal ein ordentlicher SLI-treiber für vista erscheinen ;)

R300
2007-07-29, 01:55:55
ich vermute mal, dass bei den soft-shadows beim rendering irgendwo die schattenkantenpixel markiert werden und beim post-processing geblurrt werden.
...

Nein, ich denke es werden mehrere von diesen Schatten leicht versetzt übereinander gelegt.

So wie es der Fablemark von PowerVR auch macht.