R1ng0 schrieb:
Das sollte ein einfaches Beispiel sein, warum benötigte Daten im entfernten L3 liegen können.
Ich glaube ich verstehe jetzt dein Beispiel besser, auch wenn mir noch unklar ist warum Du dazu einen Baum gewählt hast, in dem es ja Abhängigkeiten gibt. Nichtsdestotrotz ist ein 'loss of scope' (Kern hop?) oder Context Switch ja immer ein Problem das es eigentlich zu vermeiden gilt (auch bei Systemen die einen übergreifenden Shared LL Cache haben). Warum Intel Systeme Threads wie wild herumreichen bleibt mir auch unklar, denn auch dort bedeutet ja ein Switch das mindestens ein Cache Miss stattfindet. Das kann also auch dort nur ein trade off gegen Hotspots sein (eventuell wegen der schlechten thermischen Lösung durch TIM?). In jedemfall halte ich es eigentlich für ausgeschlossen, das ein Cache Miss im L3 bei einem Ryzen Sys dazu führt, dass die CPU im distalen L3 sucht bevor es im RAM sucht. Das müsste ja in den allermeisten Fällen dazu führen, dass auch im distalen ein weiterer Miss dazu kommt bevor im RAM gesucht wird, denn die Wahrscheinlichkeit das ein distaler Kern die gleiche Aufgabe sehr zeitnah schonmal bearbeitet hat ist eigenentlich nicht vorhanden (weil aktiv durch den Scheduler vermieden).
Und wie du auch sehen kannst, ist der Performance Gain, durch einen höhereren Takt der IF bestenfalls marginal. Die Performance Zuwächse kommen fast ausschließlich durch den schnelleren Zugriff auf den RAM. Ich hab ja das Glück, dass ich bei meinem Sys den RAM Takt und die Timings sehr breit wählen kann. Performance Unterschiede bekomme ich zwar dramatische durch kurze Latenzen zum RAM; bei gleichen Latenzen aber unterschiedlichem Takt sehe ich aber wirklich so gut wie keine Unterschiede.
In anderen Worten, die größte Baustelle in AMDs Architektur seit Release von Zen1 ist die Sprungvorhersage. AMD hat zwar das Perceptron marketingseitig vollmundig als Ai Sprungvorhersage beworben, in Wirklichkeit ist das aber eher eine Altlast aus den PUMA Kernen wo es damals State of the Art implementiert wurde. Die Treffsicherheit des Perceptron liegt aber signifikant hinter dem von TAGE (bei mehr Flächenverbrauch übrigens) welches mittlerweile von Intel benutzt wird und so denke ich werden sie(sollte AMD nicht eine Möglichkeit gefunden haben Perceptron deutlich zu verbessern) auch auf TAGE wechseln. Das hätte vor allem auch den Vorteil, dass für Intel kompilierter Code auch auf AMD besser läuft, ohne Anpassungen (AMD Optimierungen) bringen zu müssen.
Natürlich stimmt es das AMDs Strategie zum wirtschaftlichen Skalieren von CPUs in Zeiten immer teurer werdender Fertigung einen Tradeoff hat. Aber zu sagen AMDs größte Baustelle ist das CCX Design ist schlicht falsch, denn der real existierende Performance Hit liegt selbst unter härtesten Bedingungen hier nur im sehr, sehr niedrigen Bereich (nachweislich).
In sofern erwarte ich für Zen2:
- verbesserte Sprungvorhersage (confirmed) (möglicherweise TAGE oder gar BATAGE) - (in dem Zusammenhang interessanter Tweet)
- größere Caches (confirmed)
- verschlechterte RAM Latenz (absehbar) (- möglicherweise trotzdem besser als bei Zen+ durch Optimierungen am IMC - das ist das große Fragezeichen)
--> In Summe eine verbesserte durchschnittliche IPC
Dazu kommt noch der ganze andere Kram wie
- verdoppelte FPU Leistung (confirmed)
- erheblich breiteres Frontend (confirmed)
- höherer Takt (confirmed)
Und ein Wort zum Schluss: Als Ryzen raus kam war genau die von Euch benutzte Argumentation das, was ausgehend von einem Review Artikel durch das Netz geschossen ist. Der High Latency Cross CCX ist der Grund warum AMD eine "Gaming Schwäche" habe. Schon das Creators Update hat den Scheduler angepasst und das Problem war real (von der Magnitude her) keines mehr. Trotzdem geistert bis heute durch die Foren, dass ein herumreichen von Threads über CCX Boundaries hinweg "eine Hauptbaustelle sei". Ist sie aber nicht, und das ist eben was mich persönlich nervt, denn es verhindert nur das man mal über die wirklich interessanten Baustellen reden kann. Die Leute lieben einfach simple Erklärungen, auch wenn sie garnicht (mehr) zutreffend sind.
Ob AMD jetzt in Games (ohne GraKa Limit) 5% vor oder hinter Intel liegt ist für mich auch garnicht entscheidend - aber auch überhaupt nicht absehbar. Dafür sind die Veränderungen an der Architektur/Takt einfach zu substantiell und die bisherigen Infos zu wenige. Ich würde aber vermuten, dass wir bei erheblich niedrigerem Energieeinsatz mindestens gleichwertige Performance bei mehr verfügbaren Kernen zum gleichen Preis bekommen.
Gruss,
Ned
P.S.:
Iceberg87 schrieb:
Ein zerstückelter L3-Cache (bei Zen2 4x16MB) kann IMHO niemals so effizient arbeiten als wenn es eben nur einen L3-Cache geben würde.
Die Aussage ist zwar grundsätzlich richtig, allerdings ist der L3 bei Ryzen Systemen ein reiner
Victim Cache in dem
nur Daten Landen, die aus dem L2 gefallen sind, weil sie nicht mehr benötigt wurden und durch neue Daten überschrieben wurden. Im L3 liegen also ausschließlich Daten vor, die die Sprungvorhersage vorher in den L2 geladen hatte. Im distalen L3 sollten dieselben Daten nur dann vorliegen, wenn die Kerne des CCX0 am gleichen Prob rechnen wie die des CCX1. Dann und
NUR DANN. !Cache ist nicht gleich Cache!
Das ist auch der Hauptvorteil von Shared Cache, die gleichen Daten beim Rechnen an geteilten Problemen müssen nicht 4x vorgehalten werden sondern nur 1x (reduziert die notwendige Größe des Caches - macht das ganze flächeneffizienter).
Wenn ein Thread jetzt von einem Kern auf CCX0 auf einen Kern in CCX1 wechselt, dann findet der Kern natürlich keine Daten vor. Dieses Szenario wird aber wie ich vorher gezeigt habe auf Ryzen Systemen aktiv vermieden. Wenn das sagen wir mal 1x in der Sekunde vorkäme (es kam nicht 1x in 40 min vor) wäre das auch völlig egal, weil die Zugriffszeit im Nanosekundenbereich liegt. Da muss schon ganz schön rumgeshuffelt werden bis das tragische Konsequenzen hat und genau das wird wie gesagt ja aktiv vermieden.
Jetzt hab ich aber wirklich alles zu dem Thema 3x gesagt und wer das jetzt anders sieht, darf das mit Gottes Segen auch gerne tun. Aber bitte keine Diskussion an mich gerichtet mehr warum die cross CCX IF ein Flaschenhals sei. Ich ignoriere das von hier an.