AMD Ryzen Threadripper 2990WX und 2950X im Test: Mit Vollgas an Intel vorbei

Ich lehne mich mal aus dem Fenster und behaupte, dass bei 99,999% der Dinge auf der Welt, die programmiert werden, Assembler bereits bei der Kosten-Nutzen-Analyse vom Tisch ist. Jede Programmiersprache hat ihre Vor -und Nachteile. Assembler ist meistens viel zu aufwändig und die Vorteile werden einfach nicht gebraucht. Assembler ist mir bis jetzt immer nur an wichtigen/kritischen Stellen begegnet, wo die Performance besonders wichtig ist.
Der wichtigste Punkt fehlt. Was für ein Assembler ist gemeint? x86, x86-64, 68k, PowerPC, HP-PA, MIPS, ARM, RISC-V, …
Eine der Gründe unter UNIX/Linux kein Assembler zu verwenden besteht darin, dass die Programme in Assembler nicht mehr portabel sind und das verstößt gegen die UNIX-Philosophie, dass Programme Sourcecode portabel sein sollen. Mir ist unter *I*X nur eine Library in den letzten Jahren untergekommen, in der wirklich Assembler verwendet wurde: GotoBLAS. Der Rest wurde in irgend einer Hochsprache programmiert und die Assembler Arbeit haben die Compilerbauer gemacht.

P.S. x86/x86-64 Assembler ist grauenhaft.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Zuletzt bearbeitet:
Auch wenn du mir versichert hast kein Bot zu sein, benimmst du noch immer so und holst irgendwelche Begriffe hervor, die in keinem Zusammenhang stehen.
Du pickst dir aber genauso wie fdsonne heraus, wo man den WX schlecht aussehen lassen kann. Und was deine Ausführungen angeht, ohne den erforderlichen Treiber und die Meldung was die Hardware gerade tut, fehlt es an Informationen. Deine Ausführung LL wäre völlig ohne Treiber möglich ist totaler Quatsch. Ohne Treiber geht nichts und ob diese jetzt in ein OS eingebettet sind, oder in einem Layer oder Extention ist völlig Schnuppe.

Mit viel Blabla wird umschreiben, dass ihr meint man muss eure "Meinung" nicht akzeptieren, obwohl ihr dann ellenlang darauf umher reitet, dass sie eigentlich die einzig gültige ist. Zwei drei kurze Sätze würden eigentlich reichen, ohne den üblichen Offtopic Kram, wie toll man doch selbst ist und was man von seinem Gegenüber hält.

Im Bereich der Simulation, Autodesk Maya, Blender, Cinema 4D bzw. Davinci Resolve ist der 2990wx ein Segen, schon preislich setzt er sich für das Gebotene dabei von anderen Systenstrukturen deutlich ab. Was man klar kritisieren könnte ist, dass er im Bereich Prosumer, den AMD wohl eigens in diesem CPU Bereich für sich schaffen will, er keine iGPU hat. Die würde den meisten wahrscheinlich reichen wenn es um die reine CPU Rohpower geht.

Das macht so einen Ansatz weder billig noch überflüssig, dazu lese mal den gesamten Thread und was dabei für Argumentationen vorgehalten werden. Und wenn hier Leute damit Geld verdienen ist es um so näher, dass man glauben muss es sei ein finanzielles Interesse, dass genau zu solchen Argumentationen führt.

Ich bin also ein Bot und nach Selbsterkenntnis einiger hier sind sie Vertreter für Intel? Den Rest kannst du einfach auf LL-Wiki nachlesen, dabei frag dich mal wer die Artikel dort verfasst.
 
Zuletzt bearbeitet:
Mein bevorzugtes Schachprogramm ist übrigens in Assembler geschrieben ;)
https://github.com/lantonov/asmFish/tree/master/WindowsOS_binaries
Danke für den Link, direkt den master runtergeladen und angeguckt. Ah ... Lyudmil Antonov ist ja ein krasse Dude! Auf jeden harter Stoff. Aber warum Alles in Assembler, hätte doch sicherlich gereicht, wenn die wichtigen Teile in Assembler wären. Wahrscheinlich einer, der auch in Assembler denkt, also Yolo und mal alles in Assembler programmieren. ^^

Und ja, x86 Assembler ist grauenhaft - 68k war viel schöner :)
68k kenne ich überhaupt nicht.
MarkeyJester's 68k Tutorial
68000 Assembly - Wikibooks, open books for an open world
So spontan würde ich sagen, sieht ähnlich aus, nur weniger Befehle.
Ich hatte als Kind einen Atari ST 800 (wird hier auch im MP angeboten, nicht von mir), das war also in 68k.

Und was deine Ausführungen angeht, ohne den erforderlichen Treiber und die Meldung was die Hardware gerade tut, fehlt es an Informationen. Deine Ausführung LL wäre völlig ohne Treiber möglich ist totaler Quatsch. Ohne Treiber geht nichts und ob diese jetzt in ein OS eingebettet sind, oder in einem Layer oder Extention ist völlig Schnuppe.
Wie definierst Du Treiber? Sobald etwas die Hardware steuert (lesen/schreiben), kann man es als Treiber sehen. So gesehen ist es dann unmöglich ohne Treiber die Hardware zu nutzen, denn das Stück Software, was mit der Hardware kommuniziert, muss von der Definition her ein Treiber sein. Ich glaube, sobald ein "Stück" Software im Kernelspace sitzt, kann es machen was es will, auch die Hardware nach belieben "befehligen".

Ich hab das Asrock Fatal1ty X399 Professional Gaming
Der 2990WX hat 4 Speicherkanäle, zwei davon gehen an DIE 0, und die anderen zwei an DIE 2. Hat ein Speicherkanal nur Zugriff auf bestimmte Steckplätze? Speicherkanal 0 kann nur auf Steckplatz 0 und 1 zugreifen, Speicherkanal 1 nur auf Steckplatz 2 und 3, usw.. Wenn jetzt DIE 0 auf Steckplatz 4 zugreifen möchte, muss dies dann über DIE 2 erfolgen?
 
Ich glaube, sobald ein "Stück" Software im Kernelspace sitzt, kann es machen was es will, auch die Hardware nach belieben "befehligen".
LL wird erst durch Treiber möglich oder was denkst du gibt Feature frei die proprietär sind?:coffee2:

"Hardwarenah" heißt nicht "Treiberlos"...überleg doch mal, vor mehreren Seiten und Posts habe ich schon geschrieben, dass man sonst grundlegende Kenntnisse über die Architektur braucht, die einem der Hersteller nicht gibt. Wer das als Entwickler nicht weiß, mein Gott. Du kannst dir gerne alles alleine schreiben, will ich sehen!

Sieh es am Bsp. von Turing, wie viele Tausend Engineer-Stunden dort durch unterschiedliche Entwicklerteams eingeflossen sind, dass schafft man nicht allein, und Tensor ist auf jeden Fall LL.

Einfache Darstellung:
LL=elementare Funktion
HL=hoher Abstractionsgrad

Ist aber offtopic und ich ziehe mich jetzt hier zurück. Bis dann.
 
Zuletzt bearbeitet:
Ich hab mir eben nen 2990WX bestellt - ich werde über die Schach Performance berichten.
Wow :)

@Goderion
Ich kenn noch viele ASM Progger. Die das jetzt nicht mehr tun (sollen). Die sind 35-45 und nicht wie unsere Stars ;) 23-30. Die lassen sich bei den Themen die im verlinkten Thread angesprichen wurden vom Arbeitgeber eben viel seltener prostituieren.

@jdl
Soll das heissen, daß z.B. die ASM Optimierungen die in der letzten Zeit in VeraCrypt eingeflossen sind, nur der Windowsversion gelten? Oder wie meinst du das?
 
Der 2990WX hat 4 Speicherkanäle, zwei davon gehen an DIE 0, und die anderen zwei an DIE 2. Hat ein Speicherkanal nur Zugriff auf bestimmte Steckplätze? Speicherkanal 0 kann nur auf Steckplatz 0 und 1 zugreifen, Speicherkanal 1 nur auf Steckplatz 2 und 3, usw.. Wenn jetzt DIE 0 auf Steckplatz 4 zugreifen möchte, muss dies dann über DIE 2 erfolgen?
Genau so ist es.
AsmFish ist die Assembler Version von Stockfish mit zusätzlichem Support von large pages und perfekter NUMA Implementierung.
https://stockfishchess.org/
Stockfish Development Versions

In 68k Assembler hab ich damals meinen Commodore Amiga programmiert - lang lang ist's her :) Die Speicherverwaltung ist viel schöner als in x86 Assembler.
 
Deine Ausführung LL wäre völlig ohne Treiber möglich ist totaler Quatsch. Ohne Treiber geht nichts und ob diese jetzt in ein OS eingebettet sind, oder in einem Layer oder Extention ist völlig Schnuppe.

Und der Treiber ist ja nichts anderes als Low-Level-Software?!?! Oder was willst du mir genau sagen? Praktisch kann man nämlich sehr viel Low-Level (was auch immer das heißt – vermutlich Assembler ohne Bibliothek) machen, solange man wenig IO-Bedarf hat...

Mit viel Blabla wird umschreiben, dass ihr meint man muss eure "Meinung" nicht akzeptieren, obwohl ihr dann ellenlang darauf umher reitet, dass sie eigentlich die einzig gültige ist.
Dann stell doch einfach mal deine Meinung dar, das was du machst wird von dir treffend im nächsten Satz beschrieben:

Zwei drei kurze Sätze würden eigentlich reichen, ohne den üblichen Offtopic Kram, wie toll man doch selbst ist und was man von seinem Gegenüber hält.

Blabla gibt's bei dir auch:

Im Bereich der Simulation, Autodesk Maya, Blender, Cinema 4D bzw. Davinci Resolve ist der 2990wx ein Segen, schon preislich setzt er sich für das Gebotene dabei von anderen Systenstrukturen deutlich ab.#
Was jetzt, Simulationen oder 3D-Gestaltung? – wo hast du Maya-Benchmarks gesehen?

Was man klar kritisieren könnte ist, dass er im Bereich Prosumer, den AMD wohl eigens in diesem CPU Bereich für sich schaffen will, er keine iGPU hat. Die würde den meisten wahrscheinlich reichen wenn es um die reine CPU Rohpower geht.
dann überleg dir mal, wie die meisten der von dir aufgezählten Programme bitte ihre UI zur Verfügung stellen und in welchen Fällen dort CPU-Rohpower nötig wird? Außerdem kannst du dich ja gerne bei AMD bewerben, die suchen sicher Leute, die neben 4 Zen-Dies auch noch eine GPU pappen :p

Das macht so einen Ansatz weder billig noch überflüssig, dazu lese mal den gesamten Thread und was dabei für Argumentationen vorgehalten werden.
Jo, von allen Leute, außer von dir, da nur Gebrabbel:

Und wenn hier Leute damit Geld verdienen ist es um so näher, dass man glauben muss es sei ein finanzielles Interesse, dass genau zu solchen Argumentationen führt.
Finanzielles Interesse wie man feststellt, dass alle Anbieter über die Jahre teurer werden und einem der Controller im Nacken sitzt


Ich bin also ein Bot und nach Selbsterkenntnis einiger hier sind sie Vertreter für Intel? Den Rest kannst du einfach auf LL-Wiki nachlesen, dabei frag dich mal wer die Artikel dort verfasst.
Du? Du laberst dafür aber ganz schön viel Müll:

Schon mal was von ccNUMA gehört oder clusterweite Adressräume? Dafür passt man auch das Paging an und alloziert es freundlich. Und ja ccNUMA war Opteron!
Leider verstehe ich dein teutsch nicht? Wie ccNUMA (also Cache-Kohärenz über alle Nodes) hilft, die fehlende Bandbreite/Latenz auszugleichen, weiß ich nicht. Aber muss man ja nicht wissen, wenn man nur (wie du) versucht möglichst viele "Fachbegriffe" in den Beitrag zu werfen, um damit Leute, die Ahnung haben für die Leute, die dem ganzen nicht folgend können zu diskreditieren:
Ich weiß jetzt nicht ab wann (welches Framework), aber das gibt es schon (sperren aufgrund threadsicherer Prozeduren). Das Problem ist das zur Threadsicherheit eine gesamte bereits gewrappte Enumeration gesperrt werden kann und die Queue dann folgerichtig wieder neu synchronisiert werden muss.

Das kann zu einem Memory "Ballooning" Effekt führen, wie man diesen aus VMs kennt. Für die Konfigurationen (OS) müssen dann ein Interagtionsservice geladen werden (weil damit nicht alle umgehen können), woei dann für bestimmte Operationssysteme Werte manuell (Startup) gesetzt werden müssen. Ansonsten wird bei Ressourcenknappheit wohl ein Swapping stattfinden. Was sich aber nachweisen lassen würde. Dabei bricht natürlich auch die Bandbreite ein.



@Goderion
Ich kenn noch viele ASM Progger. Die das jetzt nicht mehr tun (sollen). Die sind 35-45 und nicht wie unsere Stars ;) 23-30. Die lassen sich bei den Themen die im verlinkten Thread angesprichen wurden vom Arbeitgeber eben viel seltener prostituieren.
Wieviele und was machen die denn? Mit 35-45 dürften die Leute vor 20-30 Jahren in den ersten Kontakt mit PCs gekommen sein. Vor 20 Jahren war die Dotcom-Blase und Java gerade sehr im Kommen, 10 Jahre davor dürfte VB der letzte Schrei gewesen sein. Assembler ist auf jeden Fall schon ein sehr interessanter Mikrokosmos, in dem du lebst ;). Und für größere Projekte skaliert das einfach auch nicht?!?!
 
Zuletzt bearbeitet:
LL wird erst durch Treiber möglich oder was denkst du gibt Feature frei die proprietär sind?:coffee2:
Ich denke man sollte wohl erst klären, was unter LL/Low Level verstanden wird.

High- and low-level - Wikipedia
Low-level programming language - Wikipedia

Laut diesen Einträgen und meinem Verständnis, ist ein Treiber selber Low Level und wird meist/oft? mit einer Low Level Programmiersprache entwickelt.

"Hardwarenah" heißt nicht "Treiberlos"...
Auch wieder eine Frage, was man unter Hardwarenah versteht.

Ich verstehe darunter, dass man direkt mit der Hardware arbeitet, man greift direkt auf die CPU-Register zu, auf den Arbeitsspeicher oder sonstige Peripherie/Hardware. Sobald ich aber eine Funktion von einem Treiber nutze, agiere ich doch nicht mehr hardwarenah? Ich möchte damit sagen, Hardwarenah benötigt keinen Treiber, schließt diesen aber auch nicht aus.

... überleg doch mal, vor mehreren Seiten und Posts habe ich schon geschrieben, dass man sonst grundlegende Kenntnisse über die Architektur braucht, die einem der Hersteller nicht gibt. Wer das als Entwickler nicht weiß, mein Gott. Du kannst dir gerne alles alleine schreiben, will ich sehen!
Ich glaube ich wurde falsch verstanden. Ich meine nicht, dass man z.B. eine Grafikkarte ohne "richtigen" Treiber dazu bringen kann, ein Bild zu zeichnen/rendern. Da müsste man, wie Du schon sagst, wissen, was die Grafikkarte für "Signale" erwartet. Ich meine nur, dass man auf die Grafikkarte zugreifen kann, auf die Hardwareschnittstelle. Sofern nicht bekannt ist, was diese erwartet und wie diese "antwortet", ist es natürlich sinnlos, sie zu benutzen. Das wäre so, als würde ich versuchen, mich mit jemandem zu unterhalten, der meine Sprache nicht spricht/versteht.

Sieh es am Bsp. von Turing, wie viele Tausend Engineer-Stunden dort durch unterschiedliche Entwicklerteams eingeflossen sind, dass schafft man nicht allein, und Tensor ist auf jeden Fall LL.
Ist das mit Tensor gemeint?
Learning TensorFlow :: Using a GPU
Mal kurz überflogen. Sieht nach einer Low Level Programmiersprache aus.

Einfache Darstellung:
LL=elementare Funktion
HL=hoher Abstractionsgrad
Jo, elemtare Funktion ist vielleicht nicht der richtige Begriff, aber ich glaube ich weiß, was Du meinst. (mir fällt spontan auch kein besserer Begriff ein)
Und ja, High Level = Hoher Abstraktionsgrad, z.B. HAL - Hardware Abstraction Layer

Ich kenn noch viele ASM Progger. Die das jetzt nicht mehr tun (sollen). Die sind 35-45 und nicht wie unsere Stars ;) 23-30. Die lassen sich bei den Themen die im verlinkten Thread angesprichen wurden vom Arbeitgeber eben viel seltener prostituieren.
Wieso Prostituieren? Prostituiert man sich, sobald man etwas für Geld macht, was man selber eigentlich für Mist hält?
Ich weiß jetzt auch nicht ganz genau, worauf Du dich beziehst. Assembler macht einfach, sofern Zeit/Geld ein limitierender Faktor ist, selten Sinn. Programmiere mal ein Verwaltungsprogramm mit Eingabemasken etc.. In Java/C#/usw. "bastelst" Du dir in wenigen Minuten ein paar Masken zusammen, klatscht eine Datenbank dahinter und fertig (jetzt extrem vereinfacht). In Assembler ... würde das Wochen/Monate dauern, schwer zu warten, nicht portabel, einfach grausam. Bei solchen Projekten sind die Vorteile von Assembler einfach komplett nutzlos, und die Nachteile gigantisch.
 
68k kenne ich überhaupt nicht.
MarkeyJester's 68k Tutorial
68000 Assembly - Wikibooks, open books for an open world
So spontan würde ich sagen, sieht ähnlich aus, nur weniger Befehle.
Ich hatte als Kind einen Atari ST 800 (wird hier auch im MP angeboten, nicht von mir), das war also in 68k.
Eine Atari ST 800 gab es nicht. Es gab den Atari 800 bzw. den Atari 520ST, 1040STF, …
Der Atari 800 war ein 8Bit System mit einem MOS 6502B.

Der große Unterschied zwischen x86 und 68k bestand darin, dass der 68k einen sauberen 32Bit Adressraum hatte. Dann gab es 8 Daten und 7+1 Adressregister. Bei x86 gab den Krempel vom 8008, den aufgebohrten 16Bit Modus des 8086 (8088 mit 8Bit Bus wurde im ersten PC verwendet), den 80286 Protected Mode, den 80386 Protected Mode. Der ganze Befehlssatzmist zieht sich bis heute durch. Man merkt schon an den Namen der Register, dass das nur ein 8Bit Prozessor auf Steroiden ist. Selbst im 64Bit Modus muss man immer noch diverse unterschiedliche Adressmodi (auch in Hochsprachen!) beachten, weil Intel so speziell ist.
 
Wie ccNUMA (also Cache-Kohärenz über alle Nodes) hilft, die fehlende Bandbreite/Latenz auszugleichen, weiß ich nicht.
cache-coherent NUMA

wiki schrieb:
meistens durch Inter-Prozessor-Kommunikation zwischen den Cache-Controllern erreicht, die so für kohärente Speicherinhalte sorgen...

Ersten Satz lesen und nichts aus dem Kontex reißen: Cache-Kohärenz – Wikipedia

Dein vermutlich, wahrscheinlich und so weiter macht dich dabei zu einem wirklichen Experten. Welches Studienjahr?

Der Rest lief über PM mit @Holt. Aber du kannst gerne noch mehr Lanzen brechen.

Scheißkeule7tagedadumbatz, was soll das für Hilfe sein? Mit einer Axt durch den Wald laufen und jeden zweiten Baum umhauen, damit in 100 Jahren kein Waldbrand ausbricht. Das erstickt jede Diskussion und erübrigt sich auch. 2018 scheint auf HWL-F kein gutes Jahr zu sein, weil jeder der etwas schreibt gleich als dummer Fanboy abgestempelt wird. Da brauchst du auch nicht versuchen, zwei drei fachliche Begriffe in dein Geschreibsel unterbringen und dann nur noch drauf einzuschlagen. Was sich hier manche Leute erlauben dürfen ist einfach nicht normal.

Zitatbereich flxmmr schrieb:
Leider verstehe ich dein teutsch nicht?
Und natürlich geht es jetzt mit "dein deutsch ist unverständlich los", war ja zu erwarten. Dann liegt es halt daran.

------------------------------------------------------------------------------------------

Mal den allerersten Satz hergenommen:
flxmmr schrieb:
Und der Treiber ist ja nichts anderes als Low-Level-Software?!?! Oder was willst du mir genau sagen? Praktisch kann man nämlich sehr viel Low-Level (was auch immer das heißt – vermutlich Assembler ohne Bibliothek) machen, solange man wenig IO-Bedarf hat...
1. LL Teilsatz, ist das eine Frage oder Antwort?
2. Dir wollte ich nichts sagen, weil man mit jemandnen der einen nicht versteht, auch nicht reden sollte.
3. markiert - ein 2990WX Thread? Wenig I/O, assemble ruhig weiter.

-------------------------------------------------------------------------------------------

Entgleist nicht weiter und bleibt bei eurem Thema.

@flxmmr
Es gibt einen Melde-Button neben den Postings, draufklicken, melden, löschen lassen, wenn man selbst der Fachmann ist.
 
Zuletzt bearbeitet:
cache-coherent NUMA

Ersten Satz lesen und nichts aus dem Kontex reißen: Cache-Kohärenz – Wikipedia

Kannst du mir nochmal sagen, was Cache-Kohärenz damit zu tun hat, dass bei dem 4-Die TR jeder Cache-Miss der Dies ohne RAM über das IF und die mit einem anderen Die geteilte RAM-Anbindung läuft? Würde mich einfach interessieren, was das mit ccNUMA zu tun hat?

Dein vermutlich, wahrscheinlich und so weiter macht dich dabei zu einem wirklichen Experten. Welches Studienjahr?
Ich vermute, wenn ich etwas nicht weiß. Du kannst mich dann davon überzeugen, wie es sich in der Realität verhält. So agiert man i.d.R. wenn man nicht vollkommen hohl in der Birne ist.

Scheißkeule7tagedadumbatz, was soll das für Hilfe sein? Mit einer Axt durch den Wald laufen und jeden zweiten Baum umhauen, damit in 100 Jahren kein Waldbrand ausbricht. Das erstickt jede Diskussion und erübrigt sich auch. 2018 scheint auf HWL-F kein gutes Jahr zu sein, weil jeder der etwas schreibt gleich als dummer Fanboy abgestempelt wird. Da brauchst du auch nicht versuchen, zwei drei fachliche Begriffe in dein Geschreibsel unterbringen und dann nur noch drauf einzuschlagen. Was sich hier manche Leute erlauben dürfen ist einfach nicht normal.
:coffee: ich habe dich nie als Fanboy bezeichnet. Ich vermute aber, dass eben an manchen Stellen eine Schraube locker sein könnte.

Und natürlich geht es jetzt mit "dein deutsch ist unverständlich los", war ja zu erwarten. Dann liegt es halt daran.
Ja. Das ist es halt mal. Vllt. sprechen in der Zukunft alle so wie du, nur versteht dich heute leider noch niemand in einem Internetforum, in dem man versucht mittels verschriftlichter Sprache zu kommunizieren.


Entgleist nicht weiter und bleibt bei eurem Thema.

@flxmmr
Es gibt einen Melde-Button neben den Postings, draufklicken, melden, löschen lassen, wenn man selbst der Fachmann ist.
Warum sollte ich die melden, weil du keine Ahnung hast, solange du nicht so offensichtlich trollst wie, eben, naja, JETZT! :eek::rolleyes::stupid:
 
Zuletzt bearbeitet:
flxmmr schrieb:
Ja. Das ist es halt mal. Vllt. sprechen in der Zukunft alle so wie du, nur versteht dich heute leider noch niemand in einem Internetforum, in dem man versucht mittels verschriftlichter Sprache zu kommunizieren.
Ich habe kein einziges Wort gesprochen, den Rest lasse unkommentiert. PM?

offtopic schrieb:
verschriftlichter=verschriften

"...in der man versucht, schriftlich zu kommunizieren."
 
Zuletzt bearbeitet:
Scheint wohl am Software Scheduler von NV zu liegen, hat eben auch seine Kehrseiten.
 
Bedauerlich, dass nicht angegeben wurde welche crimson Treiber Version verwendet wurde.
 
Du pickst dir aber genauso wie fdsonne heraus, wo man den WX schlecht aussehen lassen kann.
Das ist ja angesichts der Ergebnisse in den meisten Anwendungen auch nicht schwer, aber ich habe auch darauf hingewiesen und welchem Umständen der 2990WX gut performt. Wer so tut als wäre der 2990WX immer schnell, hat die Realität aber offenbar total ausgeblendet und wer meint der Kreis der Anwendungen ließe sich nur doch SW Optimierungen beliebig erweitern, ebenso. Der sehr spezielle Aufbau dieser CPU macht sie eben nur für sehr spezielle Anwendungen interessant, wer diese nicht hat und wem es auch nicht reicht sich an der Tatsache zu ergötze 32 Kerne im Rechner zu haben, sollte es sich wirklich dreimal überlegen ob er sich einen 2970WX oder 2990WX kauft.

Lyudmil Antonov ist ja ein krasse Dude! Auf jeden harter Stoff. Aber warum Alles in Assembler, hätte doch sicherlich gereicht, wenn die wichtigen Teile in Assembler wären. Wahrscheinlich einer, der auch in Assembler denkt, also Yolo und mal alles in Assembler programmieren.
Anzunehmen, denn er hat es ja auch in ARM und x86 Assembler geschrieben, wäre es in C hätte es gereicht dies einmal für jede Plattform zum compilieren und zu testen, wären also weitaus weniger Arbeit gewesen. Dazu muss er für jede neue Befehlserweiterung die er unterstützen will, wieder Hand anlegen, während ein guter Compiler mit ordentlicher Optimierung dies selbst erledigt, die Abfrage ob die CPU diesen unterstützt inklusive.

Der 2990WX hat 4 Speicherkanäle, zwei davon gehen an DIE 0, und die anderen zwei an DIE 2. Hat ein Speicherkanal nur Zugriff auf bestimmte Steckplätze? Speicherkanal 0 kann nur auf Steckplatz 0 und 1 zugreifen, Speicherkanal 1 nur auf Steckplatz 2 und 3, usw..
Ja, so ist es ja fest auf verdrahtet.
Wenn jetzt DIE 0 auf Steckplatz 4 zugreifen möchte, muss dies dann über DIE 2 erfolgen?
Ja mit all den Nachteilen bzgl. der Latenz.

Wieso Prostituieren? Prostituiert man sich, sobald man etwas für Geld macht, was man selber eigentlich für Mist hält?
Wer mit solchen Begriffen kommt, der will nicht dskutieren, sondern polemisieren und daher ist BessereHälfte bei mir auch schon auf der Ignoreliste.
Programmiere mal ein Verwaltungsprogramm mit Eingabemasken etc.. In Java/C#/usw. "bastelst" Du dir in wenigen Minuten ein paar Masken zusammen, klatscht eine Datenbank dahinter und fertig (jetzt extrem vereinfacht). In Assembler ... würde das Wochen/Monate dauern, schwer zu warten, nicht portabel, einfach grausam. Bei solchen Projekten sind die Vorteile von Assembler einfach komplett nutzlos, und die Nachteile gigantisch.
Eben, zumal die Performance sowieso von der Datenbank und nicht vom Client bestimmt werden dürfte, dazu dürfte immer wieder Änderungen nötig werden die in Assembler nochmal viel aufwendiger als in Java, C# etc. sein werden.

cache-coherent NUMA
Die Erklärung wieso dies die Nachteile bei der Latenz und Bandbreite auszugleichen ausgleichen sollte, fehlt aber immer noch. Die wird aber nicht kommen, denn um dies erzeugt mehr Overhead:
Du hast es vermutlich damit verwechselt:
Es gibt aber keinen Hinweis das TR2 dies verwendet.
Der Rest lief über PM mit @Holt.
Bitte nicht, ich habe wirklich keinen Bedarf.
Da brauchst du auch nicht versuchen, zwei drei fachliche Begriffe in dein Geschreibsel unterbringen
Das ist doch deine Masche, nur sollte es so langsam mal auffallen, dass hier mindestens 3 Leute anderer Meinung sind. Das ist wie mit dem Autofahrer der im Verkehrfunk hört ein Geisterfahrer unterwegs ist und sich denkt: Einer? Hunderte!
 
Ich hab das Asrock Fatal1ty X399 Professional Gaming - mein Threadripper 1950X wird da 'rausgeschmissen.
Kühler ist ein Noctua NH-U14S TR4-SP3.

Bitte unbedingt mal Feedback geben wie gut die Kühlung vom Noctua ausreicht, SpaWa Temps wären auch interessant, möchte auch von 1950x zum 2990wx upgraden überlege aber wegen gleichem Kühler noch. MSI hat mit dem MEG wohl ganz gut geliefert, tut vielleicht aber garnicht not. Bin gespannt auf deine Meinug. :)
 
Wieso Prostituieren? Prostituiert man sich, sobald man etwas für Geld macht, was man selber eigentlich für Mist hält?
100% korrekt.

Warum sollten diese Leute irgendwelche Hypes mitgemacht haben, weil sie zu der Zeit 23 waren?

@flxmmr
ASM skaliert nicht. Quasi prinzipbedingt ;) ;) Aber man kann sich damit so manche subroutine ums Vielfache beschleunigen. Auch in profiling Zeiten der C-Compiler.

Das ASM galt weniger ASM, als dem Typus des Programmierers, der sowas auch drauf hat. Diese Leute lassen sich eben viel schwieriger prostituieren. Sie finden sehr gute Jobs, schnell. Auch wenn sie da kein Asm machen müßen. Ist halt eine andere Generation ;) Asm hin oder her.
 
Zuletzt bearbeitet:
Hm, an meiner Uni mussten die Informatiker auch 5ECTS-hardwarenahes Praktikum machen (also LinAlg-Algorithmen und trigonometrische Funktionen optimieren). Haben das also in der Theorie schon mal gemacht und sollten das alles können (wenn sie denn mal in einem Bereich arbeiten, wo das lohnt)

@topic: das mit den Vegas ist ja interessant :)
 
Zuletzt bearbeitet:
Ja mit all den Nachteilen bzgl. der Latenz.
Ich habe mal Fragen.

Wie hoch sind die Latenzen beim 2950x angegeben?
Wie hoch ist die bidirektionale Bandbreite der IF bezüglich des SI zwischen (Die0 to Die1; Die3 to Die4) beim 2990WX?
Wie hoch ist die Peak (Bandbreite) von DDR4 bei 2667MHz oder 2993MHz?
Wie ist das PCIe 3.0 Interface an die Dices des TR angebunden? Ist das ein offensichtlicher Nachteil? Wenn ja warum?
Ist für Anwendungen eher eine hohe Coreperformance gefordert? Ist diese abhängig von Latenzen oder vom Durchsatz, und warum?
Gibt es grundlegend Probleme mit der Coreaufteilung und dem SI, oder wirkt sich dies eher auf die Computeeinheiten des WX aus?
Was wäre gewesen wenn AMD das SI mit nur je einem Kanal und je 16 Bahnen pro Die angebunden hätte?

das mit den Vegas ist ja interessant :)
Ja das ist so eine Sache, mit wissen und nicht wissen. Nur ist dies bei Intel kein bisschen anders, auch dort hätte der Treiber mit 32/64 Probleme. Dann muss man ihn vermutlich optimieren. Beim Boot mit 64 Logischen Prozessoren bricht unter Windows auch dort die Performance drastisch ein.

3DCenter Forum - Einzelnen Beitrag anzeigen - AMD - Threadripper 2000: Review-Thread

Also Fehler (Bug, Fail) oder was man auch immer dazu sagen will.
 
Zuletzt bearbeitet:
Eine Atari ST 800 gab es nicht.
Da habe ich mich vertan, meine den Atari 800 XL. Erst die Tage gelesen und doch falsch geschrieben, ich Nasenbär. ^^
PREISUPDATE ->ATARI 800XL inkl. Zubehör<-
Da könnte man direkt zuschlagen und ein Bastel-Nostalgie-Wochenende starten. ^^
Ich hatte nur ein Kassettenlaufwerk, während Freunde schon einen C64 mit Diskettenlaufwerk hatten, da war ich richtig neidisch.

Der 2990WX hat 4 Speicherkanäle, zwei davon gehen an DIE 0, und die anderen zwei an DIE 2. Hat ein Speicherkanal nur Zugriff auf bestimmte Steckplätze? Speicherkanal 0 kann nur auf Steckplatz 0 und 1 zugreifen, Speicherkanal 1 nur auf Steckplatz 2 und 3, usw.. Wenn jetzt DIE 0 auf Steckplatz 4 zugreifen möchte, muss dies dann über DIE 2 erfolgen?
Ja, so ist es ja fest auf verdrahtet.
Ja mit all den Nachteilen bzgl. der Latenz.
Also ist das, um das nochmal "abschließend" zusammenzufassen, die Hauptursache für die teils schlechte Performance von einigen Programmen. Die notwendige Cache-Kohärenz kann das dann noch verschärfen, wenn zwei Threads auf unterschiedlichen DIEs in einem bestimmten Zeitraum die gleichen Daten/Speicherbereiche nutzt. Das Abgleichen und Aktualisieren der Daten in den Caches zur Erhaltung der Kohärenz kostet erneut Zeit/Performance, und wenn Cache und Speicher auf unterschiedlichen DIEs sitzen, hat man wieder höhere Latenzen.

Im Umkehrschluss wäre es also erforderlich, um die optimale Performance zu erreichen, den Thread auf dem DIE laufen zu lassen, an dem auch der Speicher "angeschlossen" ist, mit dem der Thread arbeitet. Ausgenommen davon wären Threads, bzw. wäre es dort nicht so "schlimm", welche viel im Cache arbeiten (wenig Cache misses?) und nur selten auf den Arbeitsspeicher zugreifen müssen.

Ich sehe da noch Hoffnung, das Microsoft/AMD das irgendwie "verbessert". Gerade ein wenig im Netz gesucht, und es scheint eine Möglichkeit zu geben, herauszufinden, wie viele Cache misses ein Thread hat (Windows und Linux). Ob man feststellen kann, wo welcher Speicher gerade wirklich physikalisch liegt, muss ich noch gucken, für Microsoft/AMD wird das aber sicher möglich sein.

Dann ist die Welt wohl ein riesen Puff! :fresse: ;)
Ich kenne niemanden, der beruflich nur Sachen machen muss, die er mag, bzw. gut findet, vor allem nicht in der IT. Meistens muss man doch irgendeinen "Blödsinn" umsetzen, weil die Person, die darüber zu entscheiden hat, was wann wo und wie gemacht wird, selten wirklich Ahnung hat. Oder es fehlt Geld und man ist gezwungen mit irgendwelchen Altlasten neue Probleme zu lösen. Das kann Spaß machen, klar, aber irgendwann kann es auch nerven.

Warum sollten diese Leute irgendwelche Hypes mitgemacht haben, weil sie zu der Zeit 23 waren?
Was hat das mit einem Hype zutun? Java z.B. nutzt man nicht wegen eines Hypes, sondern weil es zahlreiche Vorteile bietet und es sehr viele Bereiche gibt, wo die Nachteile (Performance) unwichtig, bzw. vernachlässigbar sind. Immer eine Frage von Kosten und Nutzen.

@flxmmr
ASM skaliert nicht. Quasi prinzipbedingt ;) ;)
Wie ist das gemeint? Skaliert womit nicht? Takt, Multithreading, ... ?

Aber man kann sich damit so manche subroutine ums Vielfache beschleunigen. Auch in profiling Zeiten der C-Compiler.
Das bezweifelt auch keiner. Kein Compiler ist perfekt. Aber auch hier muss man immer gucken, ob es sich lohnt, selber Hand anzulegen und den Teil selber in Assembler zu implementieren.

Das ASM galt weniger ASM, als dem Typus des Programmierers, der sowas auch drauf hat. Diese Leute lassen sich eben viel schwieriger prostituieren.
Wie ich schon zuvor sagte, sehe ich absolut keinen Vorteil, wenn ich als Entwickler, der nicht mit Assembler arbeitet, Assembler kenne. Es mag Ausnahmen geben, ja, aber das wird sehr selten der Fall sein.

Sie finden sehr gute Jobs, schnell. Auch wenn sie da kein Asm machen müßen. Ist halt eine andere Generation ;) Asm hin oder her.
Da habe ich jetzt keine Erfahrungen gemacht, aber ich kann mir nur schwer vorstellen, dass die Kenntnis über Assembler z.B. einem C#-Entwickler dabei hilft, schneller einen Job zu finden. Würde ich jetzt einen C#-Entwickler suchen, wäre es mir fast egal, ob der Assembler kann oder nicht.

Du glorifizierst Assembler, bzw. die Personen, die Assembler beherrschen. Als ob man gleich ein cooler Typ sei, wenn man Assembler programmieren kann. Finde ich seltsam. Die Kunst eines Programmierer ist es, eine Anforderungen so gut wie möglich zu erfüllen, am besten sauber, wartungsfreundlich, wiederverwendbar und wenn möglich/nötig performant. Jemand der komplizierte Anforderungen/Funktionen verstehen und programmieren kann, ist ein "cooler" Typ. Assembler kann jeder "Schimpanse" lernen. Es entscheidet nicht die Programmiersprache, sondern das, was man damit macht. Ein Tischler ist ja auch nicht gut, weil er ein bestimmtes Werkzeug besitzt, bzw. damit umgehen kann, sondern weil er z.B. robuste, praktische und/oder schöne Möbel bauen kann.

Deine Einstellung erinnert mich teilweise an meine Einstellung, die ich vor über 10 Jahren hatte, wo ich noch dachte, C/C++ ist das einzig Wahre und alles andere ist Kinderkram. Java, lol, die haben nicht mal richtige Pointer und nen Müllsammler (garbage collector), was für Idioten! Können nicht mal vernünftig ihre Ressourcen verwalten, was für Trottel. Tja, der wahre Trottel war aber ich, der aus irgendwelchen hirnverbrannten Gründen dachte, man ist geil, wenn man C/C++ programmiert. Heute erscheint mir das so absurd. Aber so ist das halt, man lernt ständig und das was man gestern gemacht hat, bzw. wie man es gemacht hat, findet man morgen schon schlecht, weil man wieder was Neues gelernt hat.
 
Das ist aber ein normaler Entwicklungsprozess, zudem ist Assembler nicht schwerer als C++, nur herrscht meist Zeitnot wobei dann Assemblerprogrammcode als Inline in andere Hochsprachen eingebettet und Highlevel auf diesen Code zugegriffen wird. Heißt heutzutage müsste er auch andere Sprachen kennen.
 
Also ist das, um das nochmal "abschließend" zusammenzufassen, die Hauptursache für die teils schlechte Performance von einigen Programmen.
Welche Ursachen welchen Anteil haben, kann man nur anhand der Reviews nicht wirklich analysieren. Man darf ja auch nicht vergessen das die Speicherzugriffe ebenso wie Kommunikation über die IF dann auch miteinander konkurrieren. Wenn gerade ein Zugriff stattfindet, müssen die anderen warten bevor sie dran sind, womit sich die Latenz weiter erhöht umso mehr Kerne/Threads miteinander konkurrieren. Dies ist ja auch der Grund warum Intel bei Skylake-X auf Mesh statt die bisherigen Ringbusse gewechselt ist, denn beim Ringbus erhöht sich die Latenz auch umso mehr, je stärker der ausgelastet ist, während das Mesh auch Alternativruten erlaubt. Wie hoch die Latenz bei hoher Last letztlich für welchen Kern tatsächlich ist, lässt sich aber nur schwer ermitteln, die üblichen Benchmarks lasten während des Tests ja nur einen Kern aus.
Die notwendige Cache-Kohärenz kann das dann noch verschärfen, wenn zwei Threads auf unterschiedlichen DIEs in einem bestimmten Zeitraum die gleichen Daten/Speicherbereiche nutzt. Das Abgleichen und Aktualisieren der Daten in den Caches zur Erhaltung der Kohärenz kostet erneut Zeit/Performance, und wenn Cache und Speicher auf unterschiedlichen DIEs sitzen, hat man wieder höhere Latenzen.
Ja und die Auslastung der IF, denn über die kommunizieren die CCX ja miteinander.
Im Umkehrschluss wäre es also erforderlich, um die optimale Performance zu erreichen, den Thread auf dem DIE laufen zu lassen, an dem auch der Speicher "angeschlossen" ist, mit dem der Thread arbeitet.
Dann kann man aber nur 16 Kerne nutzen und könnte eben auch gleich den 2950X statt der 2990WX nehmen, der nur halb so viel kostet.
Ausgenommen davon wären Threads, bzw. wäre es dort nicht so "schlimm", welche viel im Cache arbeiten (wenig Cache misses?) und nur selten auf den Arbeitsspeicher zugreifen müssen.
In der Situation ist der 2990WX dann ja auch richtig schnell, zumindest wenn die Kerne nicht viel miteinander kommunizieren müssen, nur hängt es eben nicht wirklich vom Programmierer ab, sondern vom Problem ob dies möglich ist.
Ich sehe da noch Hoffnung, das Microsoft/AMD das irgendwie "verbessert".
Erreichen kann man dies nur für den Fall das die SW dann eben wirklich auch mit den 16 Kernen schneller läuft als mit allen 32 und wie soll man dies wissen? Erst recht automatisch und zur Laufzeit, denn sonst muss man es vorab bestimmten und die Software wieder manuell auf die jeweilige CPU optimieren und den Aufwand wird sich außer AMD kein Entwickler ans Bein binden wollen, sofern es nicht um eine Anwendung extra für diese CPUs geht.
Ob man feststellen kann, wo welcher Speicher gerade wirklich physikalisch liegt, muss ich noch gucken, für Microsoft/AMD wird das aber sicher möglich sein.
Im UMA Modus dürfte Windows dies nicht wissen, zumal da die RAM Adressen sowieso im Interleave über beiden aktiven RAM Controller verteilt sein dürften, man es also gar nicht vermeiden kann das größere RAM Blöcke immer auf beiden liegen. Im NUMA Modus sollte Windows dies wissen und einem SW Thread der RAM anfordert auch möglichst nur RAM zuteilen welches an dem NUNA Node hängt, auch wenn die beim 2990WX halt nur für 2 der 4 Dies geht. Eigentlich sollten Thread dann auch nicht auf Kerne auf anderen NUMA Nodes verschoben und neue Thread des gleichen Programms nicht dort gestartet werden. Aber auch da geht es schon los, wenn die dann voll ausgelastet sind, wäre es vermutlich doch schneller sie auf sonst unbelasteten Kernen eines anderen NUMA Nodes laufen zu lassen. Es gibt bei so einem komplexen Thema also keine einfachen Lösungen oder Pauschallösungen die immer performanter als alle anderen sind.

Java z.B. nutzt man nicht wegen eines Hypes, sondern weil es zahlreiche Vorteile bietet und es sehr viele Bereiche gibt, wo die Nachteile (Performance) unwichtig, bzw. vernachlässigbar sind. Immer eine Frage von Kosten und Nutzen.
Eben, wie so oft gibt es auch bei jeder Programmiersprache Vor- und auch Nachteile, die Kunst ist die jeweils passende auszuwählen und dann muss man noch die nötigen Entwicklungskapazitäten haben, was die Entscheidung auch beeinflussen kann. Selbst wenn man dann etwa in Java oder C# etwas programmiert was eigentlich performancekritisch ist, müsste man dann nicht nur einen Entwickler mit freier Kapazität haben der dies dann für jede Plattform entwicklen kann...

Was nutzt es dann wenn am Ende das Programm schneller läuft, man es aber erst sehr viel später und zu viel höheren Kosten fertiggestellt hat? Dann hat die Konkurrenz vielleicht schon den Markt an sich gerissen und man kann damit rein gar nichts mehr verdienen, ja nicht einmal die Kosten wieder einspielen.
 
Dann ist die Welt wohl ein riesen Puff! :fresse: ;)
Willkommen im Leben.

Du glorifizierst Assembler, bzw. die Personen, die Assembler beherrschen. Als ob man gleich ein cooler Typ sei, wenn man Assembler programmieren kann.
Echt? Geht so. Ich kenn aber halt keine anderen die beruflich "coden". Die programmieren ja auch nicht durchgehend in Asm und welche beruflich garnicht. Das ist aber so eine Art des alten Schlages, die weiß wie es wirklich geht ;) und mimmen nicht durchgehend das Bückschwein. Ich mag solche Leute halt :)

Finde ich seltsam. Die Kunst eines Programmierer ist es, eine Anforderungen so gut wie möglich zu erfüllen, am besten sauber, wartungsfreundlich, wiederverwendbar und wenn möglich/nötig performant.
Hast du den Thread den ich dazu verlinkt habe, wenigstens überflogen? :d

Ich glaub das war jetzt genug OT.
 
Ich habe mal Fragen.

Wie hoch sind die Latenzen beim 2950x angegeben?
Wie hoch ist die bidirektionale Bandbreite der IF bezüglich des SI zwischen (Die0 to Die1; Die3 to Die4) beim 2990WX?
Wie hoch ist die Peak (Bandbreite) von DDR4 bei 2667MHz oder 2993MHz?
Wie ist das PCIe 3.0 Interface an die Dices des TR angebunden? Ist das ein offensichtlicher Nachteil? Wenn ja warum?
Ist für Anwendungen eher eine hohe Coreperformance gefordert? Ist diese abhängig von Latenzen oder vom Durchsatz, und warum?
Gibt es grundlegend Probleme mit der Coreaufteilung und dem SI, oder wirkt sich dies eher auf die Computeeinheiten des WX aus?
Was wäre gewesen wenn AMD das SI mit nur je einem Kanal und je 16 Bahnen pro Die angebunden hätte?

So viele Fragen, ich dachte, du kennst dich aus. Du merkst schon, dass das, was du hier abziehst klassischen Desinformationskampagnen gleicht? Die meisten Fragen sollten hier beantwortet werden: NUMA NUMA: Infinity Fabric Bandwidths - AMDs Future in Servers: New 7000-Series CPUs Launched and EPYC Analysis

Nachdem man Leute wie dich allerdings demaskieren sollte:
- Latenzen: wofür? Beim RAM für den 2950X sicher planbarer, da es nur den (Sonderfall-)Fall Die mit Speicher-zu-Speicher anderes Die gibt (neben dem Speicher direkt am Die). Beim 2990x ist dieser Fall halt für 2Dies die Regel. Und wenn man für jeden RAM-Zugriff ungefähr mindestens die Core-to-Core-Latenz die bei anandtech genannt ist, ansetzt, so kommt man auf 100ns zusätzlich...
- brutto ~42-50GB/s
- brutto ~40-50GB/s. Bei Epyc und allen anderen Threadrippern müssen sich das aber die Dies bei Vollauslastung nicht teilen, wie bei beim 2990X, wo dann die Hälfte der Threads auch noch andere Latenzen hat (und man kommt nicht auf die fabelhaften Stream-Wert in einem System)...
- hier: https://scr3.golem.de/screenshots/1808/Ryzen-Threadripper-2990WX-Test/thumb620/Threadripper-v2-Review-01.png. D.h. alle Threads auf Die1 und Die3 haben einige Nanosekunden mehr Latenz für alle IO-Aufgaben (vllt. verstehst du den Punkt langsam)
- hohe Rechenleistung/Kern (was ist Coreperformance?) ist meist für jedes Problem gut. Und da viele Probleme I/O-limitiert sind, leidet die Leistung/Kern, wenn die Latenzen und die Bandbreite schlecht sind.
- naja, Probleme... 2 Dies des 2990WX haben halt kein Speicherinterface. D.h. man hat zwei unterschiedliche Kerntypen (mit unterschiedlichen Performancecharakteristika) auf der gleichen CPU und das OS weiß nichts davon. Problem ist das nicht. Für manche Probleme, die sonst alle Kerne nutzen würden, aber halt schlecht. Und i.d.R. kauft man dann wahrscheinlich eh Epyc, das hat einfach 4 normale NUMA-Nodes
- naja, dann laufen halt alle Anwendungen planbarer, aber u.U. langsamer/gar nicht, wenn man die Hälfte der Dies deaktiviert :d

Alles in allem: ist halt Marketing von AMD, indem man das so macht, sind die Foren zufrieden (weil kein neuer Sockel und 32 Kerne, das würde Intel nie machen 11elf) und gleichzeitig sichert man den (zwar winzigen) Markt für Workstations/Bastelserver, da viele Anwender für >4000€ Anschaffungskosten dann wohl doch eher 1000€ (EPYC)-10000€ (Intel Quadsocket mit ähnlichem Takt) drauflegen und wissen, dass alles so skaliert wie bisher (wobei der Markt auch durch 128GB max effektiv abgeschnitten ist).
 
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