AW: AMD: Neue Details zu Milan, kein SMT4 für Zen 3-Prozessoren
[...] Hast du dafür auch Quellen?
Soweit ich weiß ist SMT dort extrem effizient (weshalb es auch praktiziert wird. Ich habe bei SMT2 1-2% mehr Chipfläche im Gedächtnis (wobei das noch aus P4 Zeiten stammt).
SMT2 sieht man heutzutage relativ häufig, weil der Kompromiss zwischen Transistorbedarf/Chipfläche, Komplexität, Energieeffizienz und Leistungszugewinn noch mit am besten ausfällt und die "Kosten" vergleichsweise klein sind. Für den Pentium 4 und sein SMT2 gibt die Literatur recht einheitlich etwas weniger als 5 % zusätzlichen Transistorbedarf an, wobei dieser nicht mit Fläche und Komplexität zu verwechseln ist. (Ein aus 500 Mio. Transistoren bestehender Prozessor mit nur wenig Cache/SRAM-Zellen ist bspw. um Größenordnungen komplexer und auch schwieriger zu testen/validieren, als ein 500 Mio. Transistoren umfassender DRAM-Chip.)
Zur Mikroarchitektur des POWER5 schreibt man z. B., dass der Aufwand zur Implementation von SMT2 rd. 24 % zusätzlicher Chipfläche bedurfte (pro Kern; der Chip insgesamt besteht aus noch etwas mehr als nur den Rechenkernen; "Design and Implementation of the POWER5 Microprocessor"). Recht interessant ist auch der Überblick zur Mikroarchitektur, der etliche der notwendigen Anpassungen in Verbindung mit SMT erklärt, was beim POWER5 aufgrund des älteren Design noch halbwegs überschaubar ist.
http://web.cecs.pdx.edu/~alaa/courses/ece588/fall2010/papers/sinharoy_ibmjrd_2005.pdf
Zum unveröffentlichten EV8 (DEC Alpha 21464; HP hatte Compaq übernommen und den Alpha dann wegen Itanium abgesägt) schreibt die "Encyclopedia of Parallel Computing" (Springer) "with less than 10% increase in hardware resources", wobei letzteres nicht genauer spezifiziert wird (Transistoren, Fläche, Funktionseinheiten, Register, eine Mischung davon?).
In "On Performance, Transistor Count and Chip Space Assessment of Multimediaenhanced Simultaneous Multithreaded Processors" schreiben Sigmund et al. "the models with realistic memory hierarchy require a 31% increase in transistor count and a 53% increase in chip space, but yield a nearly twofold speedup; and the contemporary scaled models require a 9% increase in transistor count and a 27% increase in chip space, resulting in a 1.5-fold speedup."
https://www.informatik.uni-augsburg...ers/2000_mteac-4_sig/2000_mteac-4_sig_pdf.pdf
Hierbei ist zu beachten, dass die Forschung mittlerweile schon weiter sein wird und vor allem, dass hier die Untersuchung mit Blick auf einen Multimedia-Prozessor (MPEG2-Algorithmus) hin vorgenommen wurde, d. h. mit Blick auf einen sehr speziellen Workload (was auch die teilweise sehr hohen Leistungszugewinne erklärt). Andere Workloads profitieren in weitaus unterschiedlicher Art und Weise von SMT bis hin zu geringfügig negativen Effekten. Auch zeigen sich zwischen Architekturen bereits deutliche Unterschiede mit SMT, so bspw. zu sehen in der SPECfp2000 Suite im Vergleich mit dem Itanium 2, Pentium 4, Athlon 64 und POWER5. Selbst diese beiden älteren x86-Architekturen weisen ein teilweise sehr unterschiedliches Verhalten bei gleichen Sub-Tests der Suite mit Blick auf SMT auf; "Computer Architecture: A Quantitative Approach" (Elsevier).
In "Architecture of Computing Systems - ARCS 2010 : 23rd International Conference" (Springer) unter "How to Enhance a Superscalar Processor to Provide Hard Real-Time Capable In-Order SMT" schreibt man mit Blick auf Echtzeitanwendungen: "But there are two drawbacks of out-of-order SMT processors: they consume a lot of chip area and energy and it is hard to predict the Worst Case Execution Time (WCET) because of dynamic allocation of processor resources, ..."
Etwas später kommt man zu dem Schluss, dass sich für das Vorgehen eine einfachere in-order-Architektur, wie bspw. ein einfacher Atom-Kern eher anbietet (der Xeon Phi lässt grüßen). Die wenigsten Studien untersuchten zu der Zeit jedoch in-order-Designs, wahrscheinlich schlicht, weil out-of-order mittlerweile der Standard ist (der POWER6 war hier eine kurzzeitige Ausnahme). Weiterhin erklärt man als möglichen Kompromiss eine Aufteilung der Pipeline in bspw. ein out-of-order Frontend und ein in-order Backend.
SMT ist grundsätzlich sehr Workload-Abhängig und legt einen wesentlichen Teil der Verantwortung in die Hände der Software bzw. der Entwickler. Je nach konkreter Nutzung kann es Zugewinne im zweistelligen Prozentbereich bieten oder auch mal eine Nullnummer sein und das Thema wird nicht einfacher mit zwei voneinander abweichenden x86-Architekturen am Markt. Und zudem ist noch die Frage, woraus sich der Thread-Mix auf einer CPU zusammensetzt. Entspringt dieser überwiegend einer Applikation, hat deren Entwickler noch mehr oder weniger (unfreiwillig) alle Fäden in der Hand. Treffen dagegen vielfältige Applikationen, Hintergrunddienste und Treiber aufeinander, können diese sich dennoch ungünstig behindern und den Zugewinn durch SMT deutlich verringern (oder gar ins Gegenteil verkehren).
Beispielsweise kann man durchaus vermuten, dass es schon einen Sinn hat, dass IBM SMT8 nur für die Scale-Up-Version des POWER9 für den Betrieb mit PowerVM verwendet, die es auch nur mit bis zu 12 Kernen gibt, während sich die Scale-Out-Variante mit SMT4 "begnügen" muss, aber dafür bis zu 24 Kerne bietet.
Ebenso bleibt zu vermuten, dass auch Intel bisher aus gutem Grund nicht SMT4 in ihren regulären CPUs implementiert hat, nicht einmal in den Server-CPUs, obwohl es sich dabei um komplett eigenständige Designs handelt. Druck haben sie zweifelsfrei genug und von Zen überrascht wurden sie wohl eher nicht:
- die 10nm-Prozessentwicklungsprobleme haben sie schon länger
- dass Zen sich in einer konkurrenzfähigen Region bewegen würde, wussten man voraussichtlich auch schon in 2016
- und ebenso, dass AMD mit weiteren, kleinen Iterationen in vergleichbar kurzer Zeit folgen würde
- dass der Xeon Phi nicht mehr lange gegen nVidia im Datacenter gegenhalten können wird, war auch schon absehbar, bevor man die Linie auf der SC17 im November aufkündigte (und schon vorausschauend AVX-512 nach Skylake-SP überführte)
- mit Skylake-SP machte man keine Anstalten in Richtung SMT4 (Cascade Lake und Cooper Lake kann man wohl als Übergangsphase verstehen, in der keine größeren Änderungen mehr angestrebt wurden zugunsten der nachfolgenden, größeren Mirkoarchitekturüberarbeitungen)
- aber auch aktuell sind noch keine Schritte absehbar, denn Ice Lake (Sunny Cove) beschränkt sich weiterhin auf SMT2 und wird wohl auch in dieser Art in Ice Lake-SP zum Einsatz kommen und auch zur ab 2020 verfügbare Mikroarchitekturüberarbeitung Willow Cove (erstmals in Tiger Lake U) ist auch nichts bzgl. SMT4 zu hören
- und wenn Intel nicht noch mit einer komplett neuen Architektur parallel ums Eck kommt, wird Sapphire Rapids-SP in 2021 die Willow Cove-Mikroarchitektur verwenden, zusammen mit DDR5 und PCIe 5.0
Vielleicht ist die x86-Architektur mittlerwiele zu komplex geworden, sodass die Einstiegshürde für SMT4 auf x86 etwas höher liegt als bspw. bei IBMs POWER-Design? Das heißt jetzt nicht, dass SMT4 nie kommen wird auf x86, aber offensichtlich war die Priorität und Notwendigkeit diesbezüglich noch nicht hoch genug, weder bei Intel noch bei AMD, die es nicht einmal mit ihrer mittlerweile dritten/vierten Zen-Generation (Zen3) angegangen sind. Beispielsweise Zen4 hört sich nach einer größeren Architekturüberarbeitung an und vielleicht wird man hiermit erstmals SMT4 auf x86-CPUs zu sehen bekommen, dann aber voraussichtlich vorerst auf dem Server ... aber das wird alles schon zu sehr Glaskugel
Eine zusätzlich Frage ist auch, wo die Workloads der Zukunft primär prozessiert werden? Aktuell setzt ein Großteil auf Beschleunigerkarten (GPUs und FPGAs) und für deren Management reichen 100 - 200 Threads auf Seiten der CPU(s) pro Knoten voraussichtlich vollkommen aus, zumal Intel hier auch noch höher skalieren kann und vielleicht würde AMD mit Zen4 auch eher erstmals den Weg gehen und 4-Wege-Systeme anbieten? ... noch mehr Glaskugel
Abschließend: Eine gute Einführung, die viele der Abhängigkeiten ausführt, findet sich bspw. hier, insbesondere ab "Threads – SMT, Hyper-Threading & Multi-Core" und "More Cores or Wider Cores?":
Modern Microprocessors - A 90-Minute Guide!