In welchem Umfang verwendet OpenGLs GLSL SLI-Setups? Wird es überhaupt zum Zeitpunkt der Ausführung oder nur zum Rendern verwendet?
Ebenso weiß ich, dass OpenCL SLI fremd ist, aber wenn man davon ausgeht, dass es mehrere GPUs gibt, wie vergleicht es dann mit GLSL im Multiprocessing?
Da dies von der Anwendung abhängen könnte, z. Common Transformation oder Ray Tracing, können Sie einen Einblick in Unterschiede je nach Anwendungstyp bieten?
Das Ziel von SLI ist es, die Rendering-Arbeitslast auf mehrere GPUs zu verteilen. Zuerst verwendet der Grafiktreiber entweder eine erste Sortierung oder eine Zeitzerlegung (GPU0 arbeitet mit Frame n , während GPU1 mit der Methode n + 1 arbeitet. Und dann werden die Pixel von einer GPU zur anderen kopiert.
Das heißt, SLI hat nichts mit der von OpenGL verwendeten Schattierungssprache zu tun (die Art, wie die Pixel gezeichnet werden, stimmt nicht überein) 't wirklich wichtig).
Für OpenCL würde ich sagen, dass Sie Ihre Arbeitslast auf die GPU selbst verteilen müssen, aber ich bin mir nicht sicher.
Siehe Ссылка
Grundsätzlich müssen Sie dem Treiber mitteilen, dass Sie SLI in welchem Modus verwenden möchten. Danach wird der Fahrer (fast) nahtlos die ganze Arbeit für Sie erledigen.
Alternate Frame Rendering: keine Synchronisierung erforderlich, also bessere Leistung, aber mehr Verzögerung
Geteiltes Frame-Rendering: Bei vielen Synchronisierungen werden einige Vertices doppelt verarbeitet, aber weniger verzögert.
Für Sie GLSL vs OpenCL-Vergleich, ich kenne keinen guten Benchmark. Ich würde mich allerdings dafür interessieren.