Diverses zu CPUs: Kerne/Threads, AM4-CCX-Konfigurationen, L3-Cache Einflüsse, SMT/HT
Dieser Thread ist ein Ableger eines großen Anno 1800 Benchmarks, der aufgeteilt werden musste.
Der Hauptthread mit den Inhaltsverzeichnis bietet Erläuterungen die vorher gelesen werden sollten.
Wie reagiert Anno 1800 auf mehr Kerne und mehr oder weniger CPU-Threads?
Wie man sieht gibt es eine stetige Verbesserung von zwei bis sechzehn CPU Kernen bei aktiviertem SMT(jeder Kern meldet sich als zwei virtuelle Kerne).
Bezogen auf acht Kerne verlieren sechs und vier Kerne mit 2 und 7% gar nicht so viel Leistung.
Zwei einsame Kerne verlieren mit 22% zwar sehr deutlich bei den FPS allerdings könnte es auch deutlich schlimmer sein. Manche moderne Spiele starten mit zwei Kernen gar nicht mehr oder werden unspielbar. Vermutlich rettet SMT hier den Tag. Eine Messung ohne SMT wurde bei zwei Kernen nicht durchgeführt, da solche CPUs seit langer Zeit nicht mehr aktuell sind und selbst die alten Intel i3 CPUs HT haben.
Zwölf und sechzehn CPU Kerne verbessern die Leistung nur sehr geringfügig und es ist besser wenn bei 8 Kernen die virtuellen Kerne deaktiviert werden.
Bei acht Kernen verbessern sich die FPS ohne SMT um fast 5% und selbst bei vier Kernen noch um über 4%.
Damit ziehen vier Kerne ohne SMT, mit sechs Kerne mit SMT gleich.
Hier sieht man den Verlauf der FPS und in Rot die Ergebnisse ohne SMT.
Mit einer Ryzen CPU der ersten Generation zeigt sich ein ähnliches Bild und die 8 Kerne profitieren mit über 4 % vom Deaktivieren der virtuellen Kerne.
Das verwendetes X370 Crosshair VI Hero von Asus bot die Möglichkeit gezielt zwei Kerne pro CCX, oder einen kompletten CCX zu deaktivieren, was hier ebenfalls verglichen wurde.
In der 2+2 Konfiguration profitiert man ohne SMT mit ganzen 11% und in der 4+0 Konfiguration sind es sogar fast 14%.
Wie sieht es mit Zen3 CPUs aus?
Wie der Fehlerbalken der FPS andeutet ist die Aussagekraft des Vergleichs nicht so gut.
Doch auch hier ist das deaktivieren von SMT ein Vorteil für Anno 1800.
Und der Wechsel von acht auf vier Kerne kostet ähnliche 7% wie schon bei Zen2.
Reicht es auch unter Windows die Thread-Zugehörigkeit zu limitieren?
Hier mit einem Ryzen 5800X3D und etwas anderem RAM nachgeholt, zeigen sich wieder 4% mehr FPS und damit der gleiche Vorteil wie bei den anderen Tests mit 8 Kernen.
Um nicht generell durch das Abschalten von SMT Leistung zu verschenken, ist das Ändern der Thread-Zugehörigkeit per Software die bessere Lösung für eine Optimierung in Anno 1800.
Wie sieht es mit Intels HT aus?
Quantitativ mit den AMD Ergebnissen vergleichbar ist es nicht, da das verwendete Notebook mit einer viel langsameren GPU ausgestattet ist und nicht die gleichen Einstellungen nutzen konnte.
Es wurden niedrige Details benutzt und die Render-Auflösung über FSR auf das Minimum abgesenkt. Auch limitieren die 16GB RAM das Notebook.
Trotzdem zeigt der Unterschied von fast 9% bei den FPS einen ebenfalls vorhandenen Vorteil durch den Verzicht auf die virtuellen Kerne.
Sowohl bei AMD als auch bei Intel wirkt es sich also negativ aus wenn das Spiel virtuelle Threads zur Verfügung hat.
Wie wirken sich die Unterschiede im L3 Cache und in der CCX-Konfiguration möglichst isoliert aus?
In drei Blöcken sieht man hier den Vergleich bei Zen, Zen2 und Zen3.
Bei Zen3 zeigt sich ein enormer Vorteil von ca. 50% durch die Verdreifachung des L3 Caches.
Bei Zen und Zen2 waren es nur 10 und 11% Gewinn durch den doppelten L3 Cache.
Ein ungewöhnliches Verhalten, da es bei Computerhardware meist eher eine Sättigung zu höheren Werten gibt und wenn eine Verdopplung nur 10-11% bringt, wäre es logisch, wenn eine Verdreifachung höchstens 20% mehr bringt aber keine 50%.
Scheinbar profitiert Zen3 besonders von dem L3 Cache, oder in Anno kommt der L3 Cache erst dann über eine kritische Menge, die besondere Vorteile bietet.
Vergleicht man bei Zen 1st Gen die Konfiguration mit 4+0 und 2+2 dann gewinnen hier die 2+2 mit insgesamt 16 MB(8+8) gegenüber den 8 MB von 4+0 mit immerhin 4%.
In vielen anderen Spielen hatten meine vorherigen Tests ergeben dass 4+0 meist die besseren Ergebnisse erzielt da es gerade bei der ersten Zen Generation zu sehr verzögerter Kommunikation zwischen den CCX-Clustern kommt.
Aber hier scheint der Cache wichtiger als die CCX-Kommunikation zu sein.
Die CCX-Kommunikation skaliert mit der RAM-Frequenz, da der zuständige Infinity Fabric synchron zum RAM taktet.
Laut Sisoft Sandra Messungen beträgt die Latenz bei 3400 MT/s um die 80 ns und bei 2133 MT/s sogar 110ns.
Zum Vergleich liegen die Latenzen innerhalb eines CCX bei 27-28 ns.
Messungen mit dem Ryzen DRAM Calculator ergeben hingegen höhere 118-119 ns für die Inter-CCX Latenz und 47-48 ns für die Inner-CCX Latenz bei 3400 MT/s und bei 2133 MT/s sogar 168-169 ns für die Inter-CCX Latenz.
Ein Vorteil von Zen+ gegenüber Zen sind Verbesserungen der Inter-CCX Latenzen die mit gleichem Takt auf ca. 73 ns bzw. 102 ns (3400 zu 2133 MT/s) in Sisoft Sandra sinken und sich laut dem DRAM Calculator auf ca. 162 bzw. 116 ns(3400 zu 2133 MT/s) verbessern.
Es ist schwer zu sagen, welche Werte eher stimmen und wie die Leistung in Spielen beeinflusst wird.
Es ist erschreckend, dass diese Latenzen sogar langsamer sind als die Zugriffszeiten zum RAM.
Im nächsten Spoiler versuche ich die Zusammenhänge weiter zu entschlüsseln.
In vielen anderen Spielen hatten meine vorherigen Tests ergeben dass 4+0 meist die besseren Ergebnisse erzielt da es gerade bei der ersten Zen Generation zu sehr verzögerter Kommunikation zwischen den CCX-Clustern kommt.
Aber hier scheint der Cache wichtiger als die CCX-Kommunikation zu sein.
Die CCX-Kommunikation skaliert mit der RAM-Frequenz, da der zuständige Infinity Fabric synchron zum RAM taktet.
Laut Sisoft Sandra Messungen beträgt die Latenz bei 3400 MT/s um die 80 ns und bei 2133 MT/s sogar 110ns.
Zum Vergleich liegen die Latenzen innerhalb eines CCX bei 27-28 ns.
Messungen mit dem Ryzen DRAM Calculator ergeben hingegen höhere 118-119 ns für die Inter-CCX Latenz und 47-48 ns für die Inner-CCX Latenz bei 3400 MT/s und bei 2133 MT/s sogar 168-169 ns für die Inter-CCX Latenz.
Ein Vorteil von Zen+ gegenüber Zen sind Verbesserungen der Inter-CCX Latenzen die mit gleichem Takt auf ca. 73 ns bzw. 102 ns (3400 zu 2133 MT/s) in Sisoft Sandra sinken und sich laut dem DRAM Calculator auf ca. 162 bzw. 116 ns(3400 zu 2133 MT/s) verbessern.
Es ist schwer zu sagen, welche Werte eher stimmen und wie die Leistung in Spielen beeinflusst wird.
Es ist erschreckend, dass diese Latenzen sogar langsamer sind als die Zugriffszeiten zum RAM.
Im nächsten Spoiler versuche ich die Zusammenhänge weiter zu entschlüsseln.
Um das in Anno 1800 zu überprüfen habe ich den prozentualen Gewinn durch schnelleren RAM mit drei Konfigurationen und 4 Kernen(SMT enabled) verglichen.
Was man sehen kann, ist dass sich für den prozentualen Zuwachs, keine Unterschiede außerhalb der Messungenauigkeit ergeben.
Egal ob die 4+0 Konfiguration verwendet wird, die keinerlei Inter-CCX Kommunikation hat, oder die 2+2 Konfiguration mit 2x8 oder 2x4 MB L3 Cache….es ergibt sich immer die gleiche Leistungssteigerung über den schnelleren RAM.
Das soll nicht heißen, dass die schlechte Inter-CCX Latenz gar keinen Einfluss hat!
[ALINK=a12Wie man an den FPS weiter oben[/ALINK] gesehen hatte, ergibt sich mit der gleichen L3 Menge ein 5% Vorteil für 4+0 gegenüber 2+2.
Und auch der Wechsel von Zen2 auf Zen3, bei der ein großer Unterschied darin liegt, dass jetzt ein CCD auch ein CCX ist, legt nahe, dass es hilft wenn diese Inter-CCX Kommunikation wegfällt.
Für Anno 1800 scheinen dennoch eher die RAM Zugriffe ein limitierender Faktor zu sein.
Denn das Verbessern der Inter-CCX Latenz(betrifft 57% der Kommunikation bei 2+2 Kernen mit SMT) um 27-30%, sollte sich sonst anders auswirken, als bei 4+0 wo es keine Inter-CCX Latenz gibt, die sich verbessern könnte.
Eventuell heben sich hier verschiedene Effekte, aufgrund der unterschiedlichen L3 Cache Konfiguration, mit den Inter-CCX Latenzen, zufällig gegenseitig auf.
Das Ryzen schnellen RAM für diese Inter-CCX Kommunikation braucht, gilt für Anno 1800 daher aus meiner Sicht nicht.
Das Anno 1800 grundsätzlich schnellen RAM gebrauchen kann zeigen die 23-35% Leistungssteigerung jedoch gut.
Was man sehen kann, ist dass sich für den prozentualen Zuwachs, keine Unterschiede außerhalb der Messungenauigkeit ergeben.
Egal ob die 4+0 Konfiguration verwendet wird, die keinerlei Inter-CCX Kommunikation hat, oder die 2+2 Konfiguration mit 2x8 oder 2x4 MB L3 Cache….es ergibt sich immer die gleiche Leistungssteigerung über den schnelleren RAM.
Das soll nicht heißen, dass die schlechte Inter-CCX Latenz gar keinen Einfluss hat!
[ALINK=a12Wie man an den FPS weiter oben[/ALINK] gesehen hatte, ergibt sich mit der gleichen L3 Menge ein 5% Vorteil für 4+0 gegenüber 2+2.
Und auch der Wechsel von Zen2 auf Zen3, bei der ein großer Unterschied darin liegt, dass jetzt ein CCD auch ein CCX ist, legt nahe, dass es hilft wenn diese Inter-CCX Kommunikation wegfällt.
Für Anno 1800 scheinen dennoch eher die RAM Zugriffe ein limitierender Faktor zu sein.
Denn das Verbessern der Inter-CCX Latenz(betrifft 57% der Kommunikation bei 2+2 Kernen mit SMT) um 27-30%, sollte sich sonst anders auswirken, als bei 4+0 wo es keine Inter-CCX Latenz gibt, die sich verbessern könnte.
Eventuell heben sich hier verschiedene Effekte, aufgrund der unterschiedlichen L3 Cache Konfiguration, mit den Inter-CCX Latenzen, zufällig gegenseitig auf.
Das Ryzen schnellen RAM für diese Inter-CCX Kommunikation braucht, gilt für Anno 1800 daher aus meiner Sicht nicht.
Das Anno 1800 grundsätzlich schnellen RAM gebrauchen kann zeigen die 23-35% Leistungssteigerung jedoch gut.
Haben Cache und Architekturen einen anderen Einfluss auf die FPS, als auf die Frametimes(eher unwichtig)?
Wie man sieht, kreuzen sich keine Linien deutlich von links nach rechts, was ein Hinweis dafür ist, dass es keinen speziellen Effekt gibt, der nur die FPS verbessert/verschlechtert oder der Ruckler verhindern kann bzw. zusätzliche Ruckler hinzufügt.
Bis auf den Wechsel der DirectX Version und unterschiedliche Mengen RAM wirken sich alle Verbesserungen gleichmäßig aus und verändern das generelle Verhalten des Spiels nicht.
Fazit
Wenn man eine CPU für Anno 1800 wählt, sollte die Wahl auf eine CPU mit viel Cache fallen und am besten eine X3D CPU.Von den getesteten AM4 Generationen sind logischerweise Zen3 CPUs die beste Wahl, aber die Vorteile halten sich in Grenzen und nur der 5800X3D zündet den Turbo.
Bedeutende Nachteile durch mehrere CCX scheint es nicht zu geben.
Mehr CPU Kerne bringen immer eine Verbesserung, aber ab 6 Kernen gibt es nur noch geringe Vorteile und selbst 4 Kerne reichen dem Spiel einigermaßen aus.
Was man nach Möglichkeit anpassen sollte, ist die Zugehörigkeit der Programm-Threads.
Legt man diese auf jeden zweiten Thread oder deaktiviert SMT/HT im BIOS, dann kann man mit einem kostenlosen Leistungsplus von ca. 4 % rechnen.
Macht ihr euch überhaupt Gedanken um solche Feinheiten wie die CCX Konfiguration?
Werdet ihr Anno optimieren indem ihr jeden zweiten Thread verbietet oder sogar SMT/HT im Bios deaktivert?
<- Vorheriger Thread(CPU Modelle, IPC und Takt) --Übersicht-- nächster Thread(RAM: Menge und Geschwindigkeit) ->
Zuletzt bearbeitet: