Wieviele NUMA Nodes hat Threadripper / Epic?

Kullberg

Computer Schach Freak
Thread Starter
Mitglied seit
18.02.2005
Beiträge
5.903
In der aktuellen c't wird ein System mit 2x Epic beschrieben - es soll 8 NUMA Nodes haben.
Kann das jemand bestätigen und weiß jemand, wieviele NUMA Nodes Threadripper hat?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Nach dieser Logik müsste ein Threadripper 2 NUMA Nodes haben.
 
Das wäre sehr gut - weil bei 8 Nodes bei nem dual Epic wäre das dazu passende Windows extrem teuer.
 
Das wäre sehr gut - weil bei 8 Nodes bei nem dual Epic wäre das dazu passende Windows extrem teuer.
Stimmt, da war doch was.
Mit irgendeinem Tool konnte man die "Numa Nodes" auslesen, bin mir aber nicht mehr sicher mit welchem.

Ein Node sollte aber auf ein Mainboard (Rank) bezogen sein, oder gibt es da eine standardisierte Regelung?
 
Zu wirklich 100% scheint man das noch nicht sagen zu können... Die Warscheinlichkeit, dass es 2x sind, ist aber extrem hoch bzw. sehr warscheinlich.
Technisch könnten! es aber auch 4x sein, denn unter der Decke stecken die vier DIEs wie beim Threadripper. -> das halte ich aber rein von der Verschaltung her für eher unwarscheinlich. Ausgeschlossen ist es aber nicht. Windows würde sich dort dann allerdings "komisch" anstellen und versuchen alles auf einem Node zu halten, was nicht NUMA explizit versteht/spricht. Es würden 3/4tel brach liegen und nur dort in Verwendung, wenn man den Threadscheduler dazu zwingt.

Fraglich ist aber, ob Threadripper ein Single-Node sein kann, denn das bestätigen weder die AMD Folien und auch Intel sieht das im Moment offenbar für ausgeschlossen.
Es gibt auch einen "lscpu" Output/Windows Screen eines Epyc Systems der dies zu bestätigen scheint. 8x NUMA Nodes für ein Dual Socket Epyc System:

Wurde das als Fake bestätigt??


PS: es heist übrigens "Epyc" nicht "Epic" :wink:
EPIC ist nämlich von Intel und gehört zur Itanium Reihe -> wo auch "EPIC fail" herkommt...
Keine Ahnung, warum AMD sich so extrem nahe an diesem Konkurenz-Namen anlehnt. Vor allem bei dem Resultat, was da hinten bei rum kam...


@Kullberg
Warum?
Du lizensierst Windows ab 2016 so oder so per Cores (nicht per NUMA Node!!)
Teuer ist es deswegen trotzdem, weil die 24er Basis Lizenz (also 12C/24T pro CPU im Dual Socket Server, deckt beide CPUs ab!) zzgl. 8x die 2er oder 4x4er oder 2x8er Extension benötigt werden um auf 2x32C/64T zu kommen...


Wenn du allerdings noch ein paar übertragbare 2012R2 Lizenzen hast und es nicht zwangsweise 2016 sein _muss_ bei dir, dann wäre es günstiger diese zu nutzen. Denn da deckst du mit einer einzigen Std. "Basislizenz" alle Cores/Threads offiziell ab. Gilt auch für die DataCenter -> bei deinem Einsatzzweck aber wohl eher uninteressant. Möglicherweise kommst du ja noch an SB-2012R2 Lizenzen ran... Offiziell (bspw. Volume Licenses) gibts nur noch 2016 inkl. der Restriktionen auf eine 16er oder 24er Basislizenz (deckt maximal 2x8 bzw. 2x12C ab) zzgl. der passenden Anzahl Erweiterungen bis alle Cores lizensiert sind. Mit nur einem Prozessor sieht das bspw. etwas anders aus...

Mit Threadripper reicht dir aber prinzipiell, so wie ich das MS Portfolio aktuell verstehe, eine Single 16C Basis Lizenz von Windows Server 16. Denn mit dieser kannst du auch 1x16C abdecken, die ist wiedrum preislich auf einem ähnlichen Level wie die 2012 R2 seinerzeit auch! Alles was drüber ist (>16C Single bzw. größer 8C Dual) kostet dich wie gesagt mehr als bei 2012R2 :wink:


@Phantomias88
Ein NUMA Node hat nichts mit Mainboard Ranks zu tun. Das ist eine Multiprozessorarchitektur und betitelt die Möglichkeiten beim Speicherzugriff in eben jenen Multiprozessorsetup.
Was die Screens angeht, siehe oben, sollte AMD das nicht variabel schalten oder die Screens sind Fake, dann sieht alles nach 8x pro Dual Epyc System und 2x pro Threadripper aus...
 
@fdsonne
Danke für dein Einwurf, leider habe ich nie die NUMA Arch verinnerlicht.
Bei Linux weiß ich aber, dass Nodes die entsprechende Komplett Systeme im LAN/WAN sind, also jeder PC entspricht einem Node, egal wieviel Kerne oder Sockel. :)
 
Nein, auch Linux händelt das nach Abhängigkeit, wie die Prozessorsysteme geschalten sind. Oder eben, wie es konfiguriert wurde. Die Aufteilung auf mehr Nodes KANN durchaus auch Sinn ergeben, wenn es um Trennungen und unabhänigige Berechnungen geht. Der Knackpunkt bei der Thematik sind halt Speicherzugriffe.
Also wenn bspw. NUMA Node 0 auf Speicher von NUMA Node 1 zugreifen muss. Was bspw. zwangsweise dann der Fall ist, wenn EIN Thread (der auf Node 0 läuft) mehr Speicher zugewiesen bekommt, als Node 0 physikalisch gesteckt hat.

Wenn wir aber von einem 8x System sprechen (Dual Epyc nach den Screens oder auch 4P G34 Opterons oder 8P Xeons), dann wird das ganze möglicherweise zu einen recht großen Problem und steht klar gegen die mögliche Leistungsskalierung.
Denn es muss in dem Fall die Software selbst NUMA aware sein, soll heißen, die Speicherbereiche müssen (vereinfacht ausgedrückt) auf dem Node zugewiesen werden, wo auch der Thread läuft. Im obigen Beispiel heist das, der Thread, der auf NUMA Node 0 läuft, bekommt maximal so viel Speicher zugewiesen, wie der Node auch selbst bereitstellt. Der Rest wird auf NUMA Node 1 bereit gestellt. Querzugriffe sind damit weiterhin möglich, belasten aber ebenso den Interconnect. Bei Epyc ist dieser deutlich breiter/performanter als noch beim Bulldozer. Latenzen hat es da aber trotzdem und im Vollbestückten Betrieb ist das immernoch ein Flaschenhals. Bspw. gehen je nach Aufbau auch Daten von PCIe Devices da drüber. PCIe SSDs, Interconnect Karten ala Infiniband usw. usf.

Wie sich das schlagen wird, ist im Moment völlig offen. Für Desktop ist ein 2x NUMA Node Setup völliges Neuland und für Serversysteme gibt/gab es 8x NUMA Node Konstrukte idR auch nur in absoluten Nieschen oder speziell für dieses Setup gewählten Bereichen. Ein Cinebench bspw. ist derart gut auf NUMA Skalierung ausgelegt, weil jeder der einzelnen Workerthreads bedingungslos auf einem anderen NUMA Node laufen kann. Ohne Nachteile, eher im Gegenteil, sogar Vorteile (kein Ressourcensharing in Sachen Caches und Bandbreiten). Andere Themen händeln das aber weit weniger gut, weil es nicht so schön zerhackstückelbar ist, wie beim Cinebench. Virtualisierungsumgebungen bspw. setzen die notwendigen Limits ggf. zu niedrig für einen Attraktiven Betrieb. Oder auch Kullbergs Schach-Berechnungen scheinen mir da nur bedingt über 8x NUMA Nodes zu skalieren, weil die Berechnungen nicht derart frei voneinander sind, dass es unabhängig laufen wird.
Allerdings ist Skylake-X/SP da möglicherweise auch nur bedingt die richtige Wahl (ggü. alten v4 E5 Xeons), wegen des Meshes
 
Die Anzahl der NUMA Nodes kann man im System auslesen - ich hab 2 private Tools in C++ geschrieben, die das u.a. tun.
Bevorzugt verwende ich W7 pro für meine Rechner - Windows Server hab ich nur bei meinem einzigen 4-Sockel Rechner mit 4x E5-4650.
 
W7 wird so oder so warscheinlich nicht auf Epyc und auch nicht auf Threadripper laufen, denn du wirst für den Chipsatz und den ganzen Beikram keine Treiber mehr erhalten...
Die Preisfrage ist, gibts 2008R2 Support? Wenn ja, dann möglicherweise wird auch Win7 laufen... Wenn nein, dann ists es so oder so egal. ;)

Offiziell supportet ein Client Windows maximal 2P, also zwei Sockets in der Pro. (inkl. Win10). Müsste normal also auch ein Dual Epyc abdecken... Ob das aber laufen wird, müsstest du wohl oder übel abwarten. Normal gilt, 4-8P =! 2P (trotz gleicher 2-8 NUMA Node Anzahl)

EDIT: Threadripper läuft aber ziemlich sicher auch auf Win10 Pro, also auf dem Client!
 
Zuletzt bearbeitet:
W7 läuft immerhin auf meinem Ryzen - vielleicht geht das beim Threadripper auch. Beim Intel X299 scheint W7 auch zu gehen, ich hab aber W10 drauf.
 
Nach dieser Logik müsste ein Threadripper 2 NUMA Nodes haben.

Solange die Speicherkontroller physikalisch getrennt sind und AMD keinen Softwarelayer einfügt, um dem OS einen einzigen Prozessor/Kern/wasauchimmmer vorzugaukeln, wird Threadripper 2 NUMA Nodes haben.
 
Die Anzahl der NUMA Nodes kann man im System auslesen - ich hab 2 private Tools in C++ geschrieben, die das u.a. tun.
Bevorzugt verwende ich W7 pro für meine Rechner - Windows Server hab ich nur bei meinem einzigen 4-Sockel Rechner mit 4x E5-4650.
Ich meinte es war im CPUz Report drin, allerdings finde ich da keine "numa" oder "nodes" in dem .txt file. :fresse:

@fdsonne
Der ZEN IMC hat Lizenzen von RAMbus, was unterscheidet ihn von SDRAM?
The first PC motherboards with support for RDRAM were released in 1999. They supported PC800 RDRAM, which operated at 400 MHz but presented data on both the rising and falling edge of the clock cycle resulting in effectively 800 MHz,
Rambus - Wikipedia

Ein IMC Ringbus?
 
Zuletzt bearbeitet:
Bei Threadripper lässt es sich einstellen:

For one, the Ryzen Master software, as well as the BIOS, will expose an ability to switch between what AMD dubs "Creator mode" and "Gaming mode."
...
Creator mode will be the default setting. But you can switch to Gaming mode in Ryzen Master and reboot. (Gaming mode is associated with the NUMA setting, versus the UMA setting for Creators mode.) AMD claims it tested 100 games and wanted to see the effect of NUMA.
von CPU Preview! AMD's Ryzen Threadripper Processors Decloaked, Detailed - ComputerShopper.com
 
Ein Node sollte aber auf ein Mainboard (Rank) bezogen sein, oder gibt es da eine standardisierte Regelung?
Nein, ein NUMA-Node besteht aus einer CPU (früher) bzw. Cores und lokalen Speicher. D.h. alle Cores die direkten Zugriff auf den- oder dieselben Memory Controller haben zählen zu einem NUMA-Node. Bei Ryzen habe alle Cores auf den gleichen Memory Controller Zugriff, deshalb ist das ein NUMA-Node, obwohl hier die beiden Hälften auch verbunden sind. Das führt zu höheren Latenzen, wenn man auf den Cache der anderen Hälfte zugreift, aber das macht noch keinen NUMA-Knoten aus.

Der Ringbus bei den Intel Core i und den Xeon E5/E7, das Ryzen Interconnect zwischen beiden Quadcore-Hälften, das Mesh bei den Xeon SP zählen nicht als Interconnect. Die QPI, UFI, HyperTransport und die InfinityFabric aber schon.

Interessiert wird es, wie sich Threadripper auf dem Desktop schlägt, da nun NUMA auf dem Desktop Einzug hält. Das gab es bisher nicht. Die Hoffnung besteht, dass die Software-Hersteller auf NUMA anpassen, dann kommt das auch Workstation und Server zu Gute.
 
Tatsächlich sind bei 2 NUMA Nodes die Verluste noch nicht allzu hoch, wenn die Software NUMA nicht unterstützt. Schlimm wird es zumindest beim Schach bei mehr als 2 NUMA Nodes.
Beim Schach ist es so, dass nur 2 moderne Programme NUMA richtig unterstützen: Houdini und asmFishW. Bei ausgeschaltetem NUMA Support haben die auf nem normalen 2 Sockel Xeon E5 v4 nur 2-3% Leistungsverlust. Bei meinem 4 Sockel 4x Xeon E5 4650 mit 4 NUMA Nodes sind die Unterschiede extrem - Schach Programme, die NUMA nicht unterstützen verlieren um die 50% Rechenleistung, und nur asmFishW läuft richtig gut. Es mag sein, dass es bei 8 NUMA Nodes noch viel extremer wird.
 
Es mag sein, dass es bei 8 NUMA Nodes noch viel extremer wird.
Das hängt auch von der NUMA-Topologie ab. Die Xeon E5-4600 haben nur zwei QPI-Links, so dass man hier bis zu zwei Hopps hat (Quadrat), bevor man auf Daten zugreifen kann. Bei den Xeon E7-4800 ist es wegen der drei QPI-Links nur einer (Quadrat mit Verbindungen in den Diagonalen). Die E7-8800 haben dann einen Würfel gebildet, mit maximal 3 Hopps. Bei den Xeon SP hat sich daran prinzipiell nichts geändert.
 
Sehr schön, das ist eine sehr hilfreiche Info!


Nein, ein NUMA-Node besteht aus einer CPU (früher) bzw. Cores und lokalen Speicher. D.h. alle Cores die direkten Zugriff auf den- oder dieselben Memory Controller haben zählen zu einem NUMA-Node. Bei Ryzen habe alle Cores auf den gleichen Memory Controller Zugriff, deshalb ist das ein NUMA-Node, obwohl hier die beiden Hälften auch verbunden sind. Das führt zu höheren Latenzen, wenn man auf den Cache der anderen Hälfte zugreift, aber das macht noch keinen NUMA-Knoten aus.

Der Ringbus bei den Intel Core i und den Xeon E5/E7, das Ryzen Interconnect zwischen beiden Quadcore-Hälften, das Mesh bei den Xeon SP zählen nicht als Interconnect. Die QPI, UFI, HyperTransport und die InfinityFabric aber schon.

Interessiert wird es, wie sich Threadripper auf dem Desktop schlägt, da nun NUMA auf dem Desktop Einzug hält. Das gab es bisher nicht. Die Hoffnung besteht, dass die Software-Hersteller auf NUMA anpassen, dann kommt das auch Workstation und Server zu Gute.
Soweit ich das verstanden habe, nutzen wir ccNUMA. Quelle: Non-Uniform Memory Access – Wikipedia
Nicht Cache-kohärente NUMA-Systeme sind zwar einfacher zu entwickeln und zu bauen, aber mit dem Standard-Programmiermodell von Neumanns nur schwer programmierbar. Daher besitzen alle derzeit im Einsatz befindlichen NUMA-Systeme spezielle Hardware, um die Cache-Kohärenz sicherzustellen, und werden deshalb auch als cache-coherent NUMA (ccNUMA) bezeichnet.

Dies wird meistens durch Inter-Prozessor-Kommunikation zwischen den Cache-Controllern erreicht, die so für kohärente Speicherinhalte sorgen, falls die gleiche Speicherstelle in mehr als einem Cache gespeichert ist. ccNUMA leidet unter schlechter Performance, wenn mehrere Prozessoren schnell nacheinander auf dieselbe Speicherstelle zugreifen wollen. Daher versucht ein Betriebssystem mit NUMA-Unterstützung die Häufigkeit solcher Zugriffe zu minimieren, indem Prozessoren und Speicher auf NUMA-freundliche Art und Weise alloziert werden.

Wenn AMD ccNUMA schon bei 100 Spiele getestet hat, wird das schon sein Grund haben. ;)
 
Soweit ich das verstanden habe, nutzen wir ccNUMA. Quelle: Non-Uniform Memory Access – Wikipedia
Richtig, egal ob AMD, ARM, Intel, Oracle oder IBM alle Hersteller nutzen mittlerweile ccNUMA. In der Anfangszeit gab es auch noch non-cc NUMA-Systeme, weil diese leichter zu implementieren sind. Wegen ccNUMA können Programme die nicht auf NUMA angepasst sind in einem System auf mehreren NUMA-Knoten laufen. Wenn die Cachekoheränz nicht gewährleistet wäre, würde solche Programme crashen, weil die Caches falsche Zustände enthielten, das musste man früher in der Software abfangen und die Caches per Software synchen - alles andere als trivial.

Was AMD nun macht, es führt NUMA in den normalen Desktop Markt ein. Das ist etwas Neues und gab es in dieser Form noch nicht. Bisher wurde NUMA zuerst im Server und dann später im Workstation Markt genutzt. AMD brachte ccNUMA als erstes in die x86 Welt (Opteron K8 Hypertransport), Intel zog erst mit den Xeon 5500 (Gainestown QPI) nach. NUMA hat nicht nur Nachteile, sondern auch deutliche Vorteile, wenn die Software auf NUMA angepasst ist. Die x86-Welt hat relativ spät ccNUMA bekommen, deshalb ist viel Software darauf nicht angepasst und in der Windows Welt ist das Wissen darum noch nicht ausreichend weit verbreitet. In der UNIX-Welt ist das ein alter Hut. Mein erster Kontakt mit ccNUMA war bei einer SGI Origin 2000, d.h. vor ca. 20 Jahren.

Wenn AMD ccNUMA schon bei 100 Spiele getestet hat, wird das schon sein Grund haben. ;)
Grundsätzlich läuft auf einem ccNUMA System jede beliebige Software ohne jede Anpassung. Allerdings ist die Performance ein Problem, wenn die Software nicht angepasst ist. Das BIOS und das OS müssen aufeinander angepasst sein, d.h. das OS muss dafür sorgen, dass die Threads und der Speicher einer Applikation auf einem NUMA-Knoten verbleiben und nicht wild im System herum geschaufelt werden. Dafür sind die Tests. Seit den ersten Opterons ist Windows ccNUMA fähig, so dass es hier nur noch um die Feinabstimmung des Systems geht und natürlich die Applikationen (auch Spiele).
 
NUMA Support bei nem Mobo ausschalten geht bei jedem mir bekannten 2 Sockel Board. Das hat aber den Nachteil, dass Programme, die NUMA unterstützen, langsamer laufen. Die, die NUMA nicht unterstützen werden dadurch nicht schneller.
 
Das exakt gleiche Feature hast du nun bei TR ;)
Also genau so wie vermutet. Ein Dual NUMA Design -> und die Option die logische DIE-to-SI Zuordnung vor dem OS zu verstecken bzw. sogar den Speicherbereich über beide SIs zu verteilen. Bringt Bandbreite, kostet Latenz.

AMD hats recht gut in der Marketingklausel verpackt, so dass NUMA nach "gut" klingt und UMA nach "böse"... Obwohl das NUMA der Marketing Aussage nur die halbe CPU einschließt.
Aber bei dir gehts doch mit 2x Nodes noch recht anständig, sagtest du? Dann steht dem Test perse ja nix im Weg. :wink: Have Fun
 
Naja, mal so mal so würde ich sagen, aber definitiv kein showstopper
normal-numa.png
von: The AMD Ryzen Threadripper 1950X and 1920X Review | Memory Mode (UMA/NUMA) and Memory Speed Performance


Und mMn. ist es kein NUMA, da jeder Speicher von jedem Kern mit voller Bandbreite angesprochen werden kann. Die Latenz mag höher sein, aber dass muss eine Software verkraften können, da noch nie garantiert war, dass deine Daten jemals "in-time" ankommen.
 

Anhänge

  • normal-memspeed.png
    normal-memspeed.png
    27,1 KB · Aufrufe: 37
Das exakt gleiche Feature hast du nun bei TR ;)
Also genau so wie vermutet. Ein Dual NUMA Design -> und die Option die logische DIE-to-SI Zuordnung vor dem OS zu verstecken bzw. sogar den Speicherbereich über beide SIs zu verteilen. Bringt Bandbreite, kostet Latenz.

AMD hats recht gut in der Marketingklausel verpackt, so dass NUMA nach "gut" klingt und UMA nach "böse"... Obwohl das NUMA der Marketing Aussage nur die halbe CPU einschließt.
Aber bei dir gehts doch mit 2x Nodes noch recht anständig, sagtest du? Dann steht dem Test perse ja nix im Weg. :wink: Have Fun
Die beiden besten Schach Programme unterstützen NUMA - da hoffe ich auf gute Ergebnisse. Meinen Threadripper 1950X und das Taichi hab ich schon bezahlt, aber Caseking hat das Datum auf morgen geändert - eigentlich haben die behauptet, heute abzuschicken. Wenns so weiter geht, werde ich stornieren und woanders kaufen.:fire:
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh