AMDs Mantle-API im Test: Der Prozessor-Katalysator

Konsolen sind eine geschlossene Plattform - eine, bei der ein Spieleentwickler seinen Titel dank eines speziellen Application Programming Interface bis auf das letzte Byte und das letzte Megahertz optimieren kann. Spiele wie The Last of Us für die Playstation 3 sind mit vergleichbar schneller PC-Hardware undenkbar, da die beiden Schnittstellen Direct3D und OpenGL längst nicht so effizient arbeiten wie das API einer Konsole - schließlich müssen hier viel mehr Architekturen und Komponenten berücksichtigt werden.
Die Mantle-Schnittstelle für Windows-PCs setzt genau hier an und soll eine ähnlich systemnahe ("low level") Programmierung wie bei einer Konsole ermöglichen. Der Prozessor- und Grafikkartenentwickler AMD hat nach eigener Aussage mehrere Jahre lang gemeinsam mit Dice an dem neuen API gearbeitet. Herausgekommen ist eine Schnittstelle, welche die vorhandene Hardware viel besser auslastet als Direct3D und damit eine höhere sowie gleichmäßigere Bildrate ermöglicht.

Grundgedanke und Voraussetzungen
Der Hauptzweck des Mantle-API ist die effektivere Nutzung vorhandener CPU-Rechenleistung, wodurch in prozessorlimitierten Spielen oder Szenen die Geschwindigkeit deutlich steigen soll. Möglich wird dies in erster Linie dadurch, dass weniger die Schnittstelle als die Anwendung bestimmt, welche Operationen CPU und Grafikkarte ausführen sollen. Zudem hat AMD die Ressourcenverwaltung deutlich vereinfacht und einige Optimierungen vorgenommen, die auch GPUs zu mehr Leistung verhelfen.
Damit Mantle funktioniert, sind derzeit vier Dinge notwendig: eine Grafikkarte mit GCN-Architektur, ein 64-Bit-Windows (7, 8 oder 8.1) sowie der Catalyst-Treiber 14.1 Beta und ein Spiel, das Mantle unterstützt. Der erste Titel ist Battlefield 4, im Laufe des Jahres sollen mehr als ein Dutzend weitere folgen. Zudem hat Oxide Games eine Techdemo namens Star Swarm veröffentlicht, die Direct3D 11 und Mantle als Schnittstellen nutzt.
Offiziell hat AMD den Catalyst 14.1 Beta nur für die R9 290X , die R9 290 , die R7 260X , die R7-Grafik von Kaveri und die Kabini- sowie Temash-APUs optimiert. Diese GPUs basieren auf der aktuellen GCN-Technik, ältere Modelle wie die HD 7970 respektive R9 280X sollen erst mit späteren Treiberversionen von der Schnittstelle deutlich profitieren - kompatibel sind sie aber bereits.
Wichtig: AMD empfiehlt Nutzern von Crossfire, alle Karten bis auf eine vor der Installation des Catalyst 14.1 Beta auszubauen, da ansonsten Ruckler oder sogar Systemabstürze auftreten können.
Theorie und Testsystem
Mantle bietet einen verringerten Overhead und mehr Kontrolle: Die Command Buffer, welche die Schnittstelle auf Wunsch selbstständig anlegt, ermöglichen zusammen mit der nahezu linearen Skalierung über viele CPU-Kerne ein besseres Multithreading. Ein Command Buffer ist einer von vielen Speicherbereichen, die vom Prozessor erstellt, in einer Warteschlange verschachtelt und sortiert werden.
Anschließend führt die GPU die gespeicherten Befehle als sogenannten Draw Call - also Aufrufe, ein Objekt zu rendern - aus. Unter Direct3D bestimmt der Treiber, welcher Teil des Chips angesprochen wird, unter Mantle hingegen definiert der Entwickler, welche Command Buffer parallel berechnet und synchronisiert werden.
Die CPU ist kein Flaschenhals mehr
Jeder Draw Call kostet die CPU Rechenzeit, unter Direct3D sind diese Befehle zudem nicht sonderlich gut parallelisiert. Mantle ermöglicht eine drastisch höhere Anzahl an Draw Calls, um entweder mehr Befehle pro Frame vorzugeben oder bei gleicher Bildrate mehr Objekte darzustellen. Mantle ermöglicht es der CPU also, in der gleichen Zeit mehr Draw Calls an die Grafikkarte zu schicken.































Dadurch, dass die CPU mehr Command Buffer und Draw Calls zugleich auf vielen Kernen ausführen kann, beliefert sie die GPU schneller mit Daten und die Geschwindigkeit des Systems steigt messbar an. Hinzu kommen weitere Verbesserungen wie beispielsweise der Verzicht auf eine Neukompilierung von Runtime-Shadern. Mantle sorgt somit in prozessorlimitierten Spielen oder Szenen für eine höhere Bildrate, also beispielsweise in den Mehrspielergefechten von Battlefield 4.
Weniger Leistungszuwachs bei hoher Grafiklast
Der beste Prozessor bringt nur wenig, wenn er zwar Daten aufbereiten, die Grafikkarte diese aber nicht schnell genug berechnen kann. Daher hat AMD mit Mantle den DMA-Zugriff ("Direct Memory Access") auf den Speicher entkoppelt, dieser arbeitet also asynchron. Gleiches gilt für die Warteschlangen von Grafik- und Compute-Befehlen, dadurch wird die GPU etwas besser ausgelastet.
Hinzu kommt die auf zwei Ressourcen vereinfachte Verwaltung, wodurch im Endeffekt auch die Leistung im Grafiklimit etwas steigt. Zugleich bietet Mantle mehr Kontrolle über die Frame-Ausgabe, diese erfolgt bei entsprechender Programmierung gleichmäßiger als unter Direct3D.






Die Testplattform
Als Basis unserer Messungen dienen ein Core i7-3770K mit 16 GByte DDR3-1333-Arbeitsspeicher und eine Sapphire Radeon R9 290X, die wir auf die Referenzfrequenzen von 1.000/2.500 MHz (Uber-Mode) heruntertakten. Als Betriebssystem kommt Windows 8.1 in der 64-Bit-Version zum Einsatz, der Grafikkarten-Treiber Catalyst 14.1 Beta liefert die Mantle-Unterstützung.
Das für Messungen der Bildrate beliebte Programm Fraps(öffnet im neuen Fenster) funktioniert unter Mantle nicht. Bei Battlefield 4 nutzen wir daher den spieleigenen Konsolenbefehl "PerfOverlay.FrameFileLogEnable". Dieser gibt aus, wie viele Millisekunden es dauert, bis ein Frame berechnet ist - dadurch ist die Bildrate pro Sekunde ableitbar. Star Swarm verfügt über eine integrierte Benchmark-Funktion.
Battlefield 4 Multiplayer-Benchmarks
Die Kampagne von Battlefield 4 ist zwar durchaus gelungen, für die meisten Spieler aber ist der Multiplayer-Modus der eigentliche Kaufgrund. Im Vergleich zum Singleplayer wird hier die CPU deutlich stärker gefordert, insbesondere auf vollen Maps mit 64 Spielern und weitläufigen Arealen.
.jpg)
Siege of Shanghai mit 64 Spielern
Den Mehrspieler-Modus zu vermessen, kostet vor allem Zeit - trotz der eingesetzten SSD für Betriebssystem und Battlefield 4: Die Map samt allen Mitspielern muss geladen werden (wir messen auf immer dem gleichen Server mit mindestens 60 Spielern) und der Spawn muss an einer passenden Stelle erfolgen. Damit es daran nicht scheitert, spielen wir auf der Karte "Siege of Shanghai" aufseiten der US-Amerikaner und schnappen uns in deren Basis ein Wassermotorrad.






Mit diesem fahren wir am Flaggenpunkt A vorbei die Promenade entlang, schwenken am dritten Pier nach rechts in Richtung Flaggenpunkt C und fahren am intakten Wolkenkratzer vorbei unter die Brücke zwischen den Flaggenpunkten C und D. Aufgrund der Schlacht um uns herum explodiert sporadisch ein Panzer oder ein Helikopter dröhnt vorbei - daher mitteln wir fünf Durchgänge, um einen repräsentativen Fps-Wert zu erhalten und lassen Durchgänge, die stark abweichen, außen vor.
Hohe Leistungszuwächse im CPU-Limit
Im Grafiklimit mit der 4K-Auflösung (3.840 x 2.160 Pixel) lastet das Mantle-API die Radeon R9 290X etwas besser aus, die durchschnittliche Bildrate steigt um 7 Prozent. In der bei vielen Spielern üblichen 1080p-Auflösung (ohne MSAA) ist unsere Testszene bereits fast durchgehend CPU-limitiert, die Bildrate unter Mantle liegt daher satte 76 Prozent höher als unter Direct3D - mit 4x MSAA sind es immer noch plus 35 Prozent.
Am deutlichsten sind die Unterschiede bei einer Auflösung von 1.280 x 720 Pixeln: Die Grafikkarte muss hier durchgehend auf Daten vom Prozessor warten, daher steigt die Geschwindigkeit um 78 Prozent. Besonders beachtenswert ist die minimale Framerate, welche unter Mantle deutlich höher liegt als unter Direct3D. Diese hat auch zur Folge, dass Nutzer von Crossfire und 120-Hz-Bildschirmen, deren Radeon-Gespanne bisher durch die CPU limitiert wurden, ihre Leistung nun voll nutzen können.






Die Frametimes belegen zudem, dass die Bilder nicht nur schneller, sondern auch gleichmäßiger ausgegeben werden. Bei gleicher nomineller Bildrate verbessert sich hierdurch das Spielgefühl spürbar. Besonders beeindruckend sind die Werte unter Berücksichtigung von Windows 8.1 und Direct3D 11.1, da Battlefield 4 von beidem im Vergleich zu Windows 7 und D3D11.0 profitiert. Optische Unterschiede zwischen der Mantle- und der D3D-Schnittstelle konnten wir nicht feststellen, einzig der Nebel-Bug(öffnet im neuen Fenster) stört derzeit.
| Direct3D 11.1 | Mantle | |
| Siege Of Shanghai (720p) | 65,4 avg / 52 min | 116,1 avg / 88 min |
| Siege Of Shanghai (1080p) | 63,8 avg / 49 min | 112,2 avg / 81 min |
| Siege Of Shanghai (1080p, 4x MSAA) | 57,7 avg / 44 min | 78,2 avg / 63 min |
| Siege Of Shanghai (2160p) | 48,9 avg / 38 min | 52,2 avg / 41 min |
Vorzeige-Techdemo Star Swarm
Die Alpha-Version Star Swarm basiert auf der Nitrous-Engine der Oxide Games. Der kleine Entwickler setzt sich unter anderem aus ehemaligen Microsoft- und Firaxis-Mitarbeitern zusammen. Da gerade Strategiespiele oft CPU-limitiert sind, hatte Oxide Games großes Interesse an Mantle. Folgerichtig ist Star Swarm eine Techdemo, welche die Vorzüge der Engine und des APIs zeigen soll.

Draw Calls, Draw Calls und noch mehr Draw Calls
Die vorliegende Techdemo bietet vier vorgefertigte Benchmark-Szenarien von je sechs Minuten Länge und vier Qualitätsstufen an, wobei immer eine optisch beeindruckende Weltraumschlacht zwischen zwei KIs mit über 5.000 Einheiten berechnet wird. Die extrem hohe Anzahl an Draw Calls deckt eine Schwachstelle von Direct3D 11 auf, Oxide Games hat die Schnittstelle laut eigener Aussage stärker optimiert als Mantle(öffnet im neuen Fenster) .






Je mehr Einheiten und Explosionen dargestellt werden, desto höher fällt der Geschwindigkeitsvorteil des Mantle-API aus: Während das Follow-Szenario bereits 100 Prozent schneller läuft, sind es im RTS-Szenario gar plus 209 Prozent - also dreimal so schnell. Allerdings sind auch durchschnittlich 25 fps unter Mantle auf einem nicht gerade schwachen Core i7-3770K ein eher geringer Wert, die Techdemo ruckelt oft sichtlich. Zudem sind aufgrund der dynamischen Berechnung der Raumschiffe mehrere Durchläufe notwendig, wodurch sich der Testaufwand stark erhöht.
Nachtrag vom 5. Februar 2014, 11:52 Uhr
Oxide Games hat einen Patch für Star Swarm veröffentlicht . Dieser verbessert das Multithreading für die Techdemo bei Verwendung des Mantle-APIs, die Bildrate erhöht sich dadurch um bis zu 26 Prozent.
Fazit
AMD plant, den Mantle-Treiber Catalyst 14.1 Beta Anfang Februar für Endkunden zu veröffentlichen(öffnet im neuen Fenster) . Die Mantle-Unterstützung in Battlefield 4 ist durch den aktuellen Patch(öffnet im neuen Fenster) gegeben, die Star Swarm(öffnet im neuen Fenster) genannte Techdemo von Oxide Games auf Basis der Nitrous-Engine ist bei Steam verfügbar.
Fazit
Viele Jahre Arbeit hat AMD nach eigenen Angaben gemeinsam mit Dice, Oxide Games und weiteren Spieleentwicklern in die Programmierung der Mantle-Schnittstelle investiert - und es hat sich gelohnt: Die vorliegende frühe Version des API ermöglicht wie angekündigt eine viel bessere Ressourcennutzung aktueller Prozessoren und steigert die Bildrate in CPU-limitierten Spielen oder Szenen bei gleicher Bildqualität drastisch - sei es im Mehrspielermodus von Battlefield 4 oder in der Techdemo Star Swarm.
Aus Sicht von AMD ist dies erfreulich, denn die hauseigenen Prozessoren konnten bisher in Spielen nicht mit den schnellsten Intel-Chips mithalten, Mantle verkleinert diese Lücke nun. Zudem bringt die Schnittstelle bei günstigen CPUs einen gehörigen Leistungsschub, der wiederum eine höhere Bildrate oder mehr Grafikdetails ermöglicht und so gesehen viel Geld spart.
Das API ist auch für Besitzer besonders schneller Prozessoren interessant: Um ein Crossfire-Gespann aus zwei R9 290X auszulasten, reichte bisher selbst ein stark übertakteter Core i7-4770K oder Core i7-4960X nicht aus, mit Mantle hingegen ändert sich das. Gerade wenn ein 120-Hz-Display genutzt wird, stellt die Schnittstelle ihren Wert unter Beweis.









Auch wenn das Mantle-API überzeugt, hätte der effizienten Schnittstelle eine weniger chaotische Veröffentlichung gut getan: Ursprünglich war Mantle auf dem GPU14 Tech Showcase für Dezember angekündigt , Dices Johan Andersson stellte gar November in Aussicht(öffnet im neuen Fenster) . 2013 verstrich und von Mantle gab es keine Spur - bis Electronic Arts auf Nachfrage den Januar als neuen Termin benannte. Dice konzentrierte sich zuerst auf die Fehlerbehebung , der finale Mantle-Patch erschien pünktlich um kurz nach 10 Uhr am 30. Januar und Star Swarm wie geplant um 21 Uhr.
AMD hingegen ließ die Sperrfrist schon um 6 Uhr auslaufen und wollte, so steht es in der Mail, die kurz vor Mitternacht verschickt wurde, der Presse den Catalyst 14.1 Beta "bald" zur Verfügung stellen. Daraus wurde an jenem Tag jedoch nichts, am Freitagvormittag schließlich kündigte AMD an, der Treiber verzgere sich wegen eines Installationsproblems weiter. Erst am heutigen Samstag um 1 Uhr stand der Catalyst für die Presse zum Download bereit - AMDs Treiberteam in Kanada hatte die Nacht durchgearbeitet.
Nachtrag vom 2. Februar 2014, 10:15 Uhr
Inzwischen ist auch der öffentliche Download des Catalyst 14.1 Beta(öffnet im neuen Fenster) bei AMD direkt erhältlich. Wie stets bei Betatreibern empfiehlt es sich, vor der Installation ein Backup oder wenigstens einen Wiederherstellungspunkt zu erstellen und bei der Nutzung von Mantle-Spielen keine wichtigen Dateien im Hintergrund geöffnet zu haben.
Nachtrag vom 3. Februar 2014, 15:29 Uhr
Wir haben ein Vergleichsvideo von Mantle und Direct3D mit Battlefield 4 sowie Star Swarm hinzugefügt. Als Testsystem diente ein Core i7-2600K mit einer Radeon HD 7970 GHz Edition sowie 8 GByte DDR3-Arbeitsspeicher.
Nachtrag vom 5. Februar 2014, 11:52 Uhr
Oxide Games hat einen Patch für Star Swarm veröffentlicht . Dieser verbessert das Multithreading für die Techdemo bei Verwendung des Mantle-APIs, die Bildrate erhöht sich dadurch um bis zu 26 Prozent.



