Werbung
Mit DirectX 12 wird sich einiges bei der Verwaltung und Unterstützung für Multi-GPU-Systeme ändern. So ist das Implicit SLI eigentlich auf zwei GPUs limitiert, NVIDIA kann aber einen Key zur Verfügung stellen, wenn mehr GPUs verwendet werden sollen (z.B. für das Competitive Benchmarking). Auf die Besonderheiten gehen wir aber nun noch einmal gesondert ein.
Mit DirectX 12 führt Microsoft drei Multi-Adapter-Modi ein. Der einfachste beschreibt dabei die bereits bekannte Funktionalität im AFR mit gleichen Grafikkarten wie bisher bei AMD und NVIDIA. Dieser Modus limitiert allerdings die Möglichkeiten der Entwickler, reduziert aber auch das Fehlerpotenzial bei tiefergehenden Zugriffen auf die Hardware. Weiterhin wird ein Großteil der Arbeit vom Treiber übernommen und nicht von DirectX 12.
Präsentation zu EMA in DirectX 12
DirectX 12 ermöglicht einen tiefergehenden Zugriff auf die Hardware, auch in einem Multi-GPU-System. Dazu hat Microsoft auch den Explicit-Multi-Adapter-(EMA)-Modus eingeführt. Dazu müssen die Spieleentwickler explizit auf eine Multi-GPU-Unterstützung hinarbeiten. Jede einzelne GPU, die Speicherzugriffe und wie die GPUs untereinander kommunizieren – all dies muss zuvor festgelegt werden. Die Verantwortung der Funktionalität liegt vollständig in Händen der Spieleentwickler, was auch gewisse Gefahren birgt. Der Aufwand dieser expliziten Anpassungen darf nicht unterschätzt werden und Fehler müssen von den Entwicklern selbst und nicht durch Microsoft, AMD oder NVIDIA korrigiert werden.
Der EMA-Modus bietet aber auch noch zwei unterschiedliche Wege der Implementierung: Linked Mode und Unlinked Mode. Der Unlinked Mode stellt die Basis der Funktionalität von EMA dar. Der Linked Mode auf der anderen Seite bietet eine höhere Funktionalität, schränkt dann aber auch die kombinierbare Hardware deutlich stärker ein – ist wie ein festgelegtes SLI und CrossFire für DirectX 12 zu verstehen. Der Unlinked Mode hingegen kann dazu verwendet werden, unterschiedliche Grafikkarten, auch von unterschiedlichen Herstellern, miteinander zu kombinieren. Auch die Kombination zwischen diskreten und integrierten GPUs ist möglich.
Im Unlinked Mode wird jede Grafikkarte als eigenständige Hardware, mit eigenem Speicher, eigenem Commandprozessor, etc. angesehen. Das EMA in DirectX 12 ermöglicht aber nun den Datenaustausch zwischen diesen Instanzen und dies tiefergehend als nur der Austausch fertig gerenderter Frames. Teilweise gerenderte Frames oder Daten in den Buffern können nun ausgetauscht werden, was völlig neue Wege des Renderings auf mehreren GPUs ermöglicht. Was sich auf den ersten Blick aber wie eine einfache Möglichkeit des Datenaustausches darstellt und damit weiter als alles geht, was bisher möglich war, wird auf den zweiten Blick doch etwas komplizierter.
So werden die Daten über das PCI-Express-Interface ausgetauscht, was im Vergleich zur Kommunikation zwischen GPU und dem Grafikspeicher deutlicher langsamer ist und zudem über eine recht hohe Latenz verfügt. Die Entwickler müssen sich also überlegen, welche Daten sie wann austauschen wollen, damit das PCI-Express-Interface nicht zum Flaschenhals wird. Ebenfalls darauf geachtet werden muss, in welcher Form diese Daten ausgetauscht werden. Die verschiedenen Hersteller und GPU-Generationen und Varianten legen oftmals unterschiedliche Datenformate an, die dann nicht so einfach untereinander verwendet werden können. Hier wird dann die Arbeit ersichtlich, die bei der Implementierung von EMA im Unlinked Mode notwendig ist. Der Fokus des Unlinked Mode innerhalb des EMA liegt auf der bereits besagten Unterstützung von dGPUs und iGPUs, aber natürlich lassen sich hier auch unterschiedliche GPUs unterschiedlicher Hersteller kombinieren.
Der Linked Mode stellt wie gesagt in einfachster Form ein SLI oder CrossFire unter DirectX 12 dar, allerdings wird im Linked Mode die Hardware zu einer "Grafikkarte" zusammengefasst. Für das Spiel und den Nutzer sind nur noch eine GPU und ein Speicher sichtbar. Die Hardware muss dazu deutlich enger miteinander verknüpft werden, was deutlich mehr Möglichkeiten zulässt, allerdings auch für die Einschränkungen bei der Hardware sorgt.
Das größte Leistungspotenzial liegt durch die Freiheiten sicherlich im Linked Mode, die größte Flexibilität bietet der Unlinked Mode. Entwickler, die möglichst wenig Arbeit haben möchten und dennoch eine Basisfunktionalität für ein Multi-GPU-System bieten wollen, unterstützen einfach nur das EMA und überlassen die Arbeit den Treiberentwicklern von AMD und NVIDIA. Da aber nur die Entwickler selbst den besten Einblick in die eigene Arbeit haben, ist sicherlich ein Angebot aus Linked und Unlinked Mode zu bevorzugen.