Mehr als 4 Grafikkarten gleichzeitig betreiben

Eine Anwendung kann sich prinzipiell in OpenGL und DX11 für jede GPU im System einen Kontext erstellen, und diese dann jeweils über den Kontext ansteuern. Dieser Kontext umfasst dann aber nur diese GPU, dh Kopieroperationen und Synchronisationen müssen einen Rundtrip über die Anwendung selbst nehmen. Allerdings bieten sowohl NVIDIA als auch AMD für DX und OGL Extensions an mit denen sich das Problem der Rountrips vermeiden lässt.

Ich vermute mal, das liegt daran, dass der Treiber das Bild nicht wirklich sinnvoll aufteilen kann, da er es, salopp gesagt, einfach "in der Mitte teilt", obwohl "links" deutlich mehr berechnet werden muss als "rechts", während die Anwendung selbst das Bild so aufteilen kann, dass jede GPU auch die Hälfte an Rechenaufwand erhält.

Lastbalancierung wird beim Treiber-SFR afaik unterstützt indem der Treiber die Aufteilungslinie anhand der Laufzeiten vom letzten Bild entsprechend verschiebt. Das Problem beim SFR liegt afaik eher daran, dass der Treiber viele andere Sachen bei SFR nicht machen kann, weil er dafür zusätzliches Wissen benötigt. Zum Beispiel muss er Zwischenergebnisse immer komplett auf beiden GPUs synchronisieren unabhängig davon ob sämtliche Synchronisierte Daten auch gebraucht werden. Zudem müssen sämtliche Vertexoperationen immer auf beiden GPUs ausgeführt werden, da der Treiber nicht vor dem Zeichnen wissen kann, ob ein Objekt jetzt im linken, im rechten oder in beiden Bildbereichen handelt. Eine direkte Implementierung von SFR durch die Anwendung könnte beide Probleme vermeiden.
 
Zurück
Oben