2015-04-13 8 views
5

Ich möchte SLI im AFR-Modus verwenden, um den FPS zu erhöhen. Ich habe den Eindruck, dass der NVIDIA SLI-Treiber die VBOs automatisch und intelligent einzelnen Grafikprozessoren zuordnen wird. Ist das richtig?Wie entscheidet SLI, welcher VBO zu welcher GPU in OpenGL gehört?

Ich habe einen Code, der eine große Anzahl von Scheitelpunkten/Flächen hat, die durch VAO mit drei verschiedenen VBOs (Scheitelpunkte, Farbe, Indizes) dargestellt werden. Es gibt keine Erhöhung von fps bei der Verwendung von Doppel-GPU mit SLI.

Ich dupliziere die VAO und VBOs mit den gleichen Scheitelpunkte/Flächen und abwechselnd den glDrawElements Aufruf zwischen den beiden VAOs in der Hoffnung der NVIDIA SLI-Treiber wird klug genug zu wissen, ein VAO ist für eine GPU, aber leider immer noch keine fps erhöhen. Kann mir jemand sagen, was ich falsch gemacht habe?

Ich habe auch versucht, einen der glDrawElements Anruf für einen der VAO kommentieren, und es zeigt doppelte FPS und flackernde Szene mit der tatsächlichen Szene und schwarzen Bildschirm wie erwartet.

+0

Welche Frameraten erhalten Sie? Wenn Sie sehr einfache Geometrie zeichnen, sind Sie wahrscheinlich von der CPU und nicht von der GPU abgedeckt. Auch SLI kann seine Muskeln nur spielen, wenn Sie eine ziemlich komplexe Szene haben, in der das Rendern eines einzelnen Frames für eine GPU länger dauert als ein Aktualisierungszyklus eines Monitors. – datenwolf

+0

@datenwolf die fps, die ich bekomme, ist um 25 ~ 30, die Szene ist von einer Ply-Datei und ich zeichne, wie es ist. Es gibt viele Scheitelpunkte/Flächen, aber keine Beleuchtung/Schatten usw. Ich bin mir also nicht sicher, ob das "komplex" ist. Eine Sache, die ich sicher bin, ist, wenn ich nur die Hälfte der Scheitelpunkte/Gesichter lade die fps verdoppelt. Sollte SLI in diesem Szenario nicht helfen? – user3667089

Antwort

1

Wie here erwähnt,

Es ist bemerkenswert, dass, während die Frequenz, bei der Ankunft Rahmen kann verdoppelt, die Zeit, um den Rahmen zu produzieren wird nicht reduziert

Zusätzlich habe ich noch nie gehört über VAOs oder VBOs, die für eine GPU reserviert wurden. Soweit ich weiß, haben beide Adapter die gleichen geklonten Puffer. Duplizierung passiert, ohne dass Sie es überhaupt merken, und jede GPU verwendet ihre eigene Kopie, um ihren Teil des Rahmens zu erzeugen. Ich mag mich irren, aber ich bezweifle es.

Das ist der Grund, warum Sie, wenn Sie 2x2 GB VRAM-Adapter haben, 4 GB VRAM nicht erhalten. Du arbeitest immer noch mit 2 GB. Wenn Ihre SLI-Adapter eine andere Kapazität haben, wird der Speicher der größeren Karte abgesenkt, um mit dem kleineren übereinzustimmen. Der ganze Leistungsschub, den Sie bekommen, kommt von der parallelen Verarbeitungsleistung der beiden GPUs und der Tatsache, dass Ihre Speicherbandbreite doppelt so groß ist. Speicher-Schreibvorgänge sind, soweit ich weiß, Hardware-Multicast, also kein großer Aufwand.

EDIT: Read these interesting points about SFR and AFR. Stellt sich heraus, dass AFR für schwere Vertex-Last empfohlen wird, während SFR besser für Pixel-Shader-Last ist. Das war selbst für mich ein interessanter Fund. Wenn Sie AFR verwenden, sollten Sie auch sicherstellen, dass Sie doppelt gepuffert sind, um den größten Nutzen daraus zu ziehen. Mangel an mehreren Puffern tötet buchstäblich AFR. Schalten Sie Ihren vsync aus - es tötet es auch!

+0

Ich wechselte in den SFR-Modus und es gibt keine Leistungssteigerung. Schlägst du vor, dass die fps durch die Speicherbandbreite begrenzt sein könnten? Es hat lange gedauert, die Daten vom CPU-Speicher in VBO zu kopieren, aber dies ist eine einmalige Operation. Können Sie näher erläutern, warum die fps durch die Speicherbandbreite begrenzt sind? – user3667089

+1

Vervielfältigen Sie immer noch die VAO- und VBOs mit den gleichen Scheitelpunkten/Flächen und wechseln Sie den glDrawElements-Aufruf zwischen den beiden VAOs in der Hoffnung, dass der NVIDIA SLI-Treiber clever genug ist, um einen VAO für eine GPU zu kennen? –

+0

Ich habe versucht, beide nicht doppelt und doppelt, und die FPS ist immer noch die gleiche – user3667089

Verwandte Themen