MKL Tweak auf Ryzen Systemen verbessert die Leistung drastisch

süchtla schrieb:
Meine CPU hätte zwei AVX512 units, die müssten standardmäßig doch aktiv sein. Oder muss man die MKL erst dazu zwingen?

Du kannst den aktiven Codepfad in Matlab nachschauen. Einfach mal

Version -blas

eingeben. Bei aktivem AVX512 muss das auch als Antwort zurück kommen. Würde mich aber wundern, das sollte schneller sein. AVX512 hat den Wert 7 im Workaround,
 
Zuletzt bearbeitet:
@Ned Flanders

Code:
version -blas
'Intel(R) Math Kernel Library Version 2018.0.3 Product Build 20180406 for Intel(R) 64 architecture applications, CNR branch AVX512'

Du meinst, mein System müsste schneller sein im Benchmark?
 
Ne, glaub ich nicht. Du verlierst Leistung durch Type=5 was sinn macht, weil Du von AVX512 auf AVX2 umschaltest.
 
  • Gefällt mir
Reaktionen: süchtla
@SKu war so so freundlich und hat auch nochmal seinen 3950x durchgelassen.

https://ibb.co/d4pTv5z

Pastebin ohne AVX Tweak: https://pastebin.com/Rv6YB82S
Pastebin mit AVX Tweak: https://pastebin.com/ngcSU2gX

Überleg mir grad ob ich nicht zusammen mit den Daten aus dem Netz mal ein paar Diagramme bastel und das gegenüberstelle. Falls einer also auch noch Lust hat den Benchmark durchlaufen zu lassen, bitte die Ergebnisse in eine Pastbin hauen (wie SKu) und hier posten. Je mehr CPUs je besser. Bislang hab ich die Intels aus dem Netz und auf AMD Seite meinen 2600x und den 3950x.

Gruss,

Ned
 
  • Gefällt mir
Reaktionen: yummycandy, I'm unknown und ZeroStrat
@Ned Flanders Funktioniert das auch mit der 30-Tage Testversion von Matlab? Dann kann ich dir Daten von einem 3700X auch in diesem Format zuschicken.
 
  • Gefällt mir
Reaktionen: Ned Flanders
  • Gefällt mir
Reaktionen: Ned Flanders
Ich lass grad nochmal unsere dual Socket Xeon Kiste durch, allerdings fällt mir da was komisches bei auf. Hätte ich mal früher machen sollen.

1575657473351.png


Was für eine Geldverschwendung. Da kann ich möglicherweise gleich das nächste how-to für Matlab in Angriff nehmen.
 
Zuletzt bearbeitet:
Lastet scheinbar nur eine der beiden CPU aus... Single Socket aber mehr Kerne lastet afaik voll aus. Aber ich hab mir das bislang nie im Taskmanager angeschaut.

Ein Windows Affinitätsprob gibts nicht... Matlab darf alle Threads verwenden, tut es aber nicht.
 
Die Inter-CPU-Kommunikation war noch nie der Burner. Was hast du denn laufen? Könnte man das gut auf zwei CPUs verteilen, ohne groß Daten auszutauschen?
 
Ist halt das Matlab Benchmark Script .... Matrix Multiplikation zählt sicher nicht gerade zu den sehr gut inter Socket skalierenden Funktionen, ist dafür aber gut multithread skalierend. Zumindest einige der Benches sollten von vielen Kernen gut profitieren. Mich wundert, dass Matlab erkennen würde, dass es sich um ein zwei Sockel Sys handelt und das direkt beschränkt. Aber möglich ist das natürlich.

Lässt Du deinen auch nochmal durch?
 
Wie ordnet Windows denn die Threads im Taskmanager? Könnte ja auch sein, dass die MKL hier nur ein Thread pro Kern benutzt (also kein SMT).
 
@nullPtr

Das ist eine sehr gute Frage. Wie bekommt man das raus? Das muss ich mir mal im Detail anschauen. Eventuell macht das bei AVX Last wegen dem Takt Offset Sinn nur Kerne, aber kein SMT zu belegen.
 
Ich kann dir leider nicht sagen, wie man das rausbekommt. Ggf. durch googeln. Für Linux könnte ich dir bestätigen, dass die Ordnung erst alle Thread 0 pro Kern, dann alle Thread 1 pro Kern ist.

Edit: Kannst du dir unter Windows mit irgendeinem Tool die NUMA-Domains auf deinem Dual-Socket-System anzeigen lassen?
 
Ich schau mir das am Montag mal genauer an. Aber du hast recht... ich vermute auch, dass das nur Kerne sind und SMT nicht mitläuft.

@iamunknown

Ein 8-Kern Zen2 wäre in der Tat noch spannend. Und ein 6-Kern Intel (8700k) falls hier jemand einen hat und mit ließt. Idealerweise keine wilden OC Systeme. Das macht in dem Bereich eh keiner.
 
Zuletzt bearbeitet:
@Ned Flanders Ja, ich kann meinen nochmal durchlaufen lassen.
Was genau und mit welchen Settings oder Optimierungen?
 
@süchtla

Einfach das Benchmark script ausführen und das Ergebnis in eine pastbin kopieren und den Link hier posten.

Keine Optimierung. Also zumindest nichts wildes. Schnelle RAM Settings sind schon ok, aber halt keine AllCore CPU Übertaktung oder ähnliches.
 
Hier mal vorab die Matlab Benchmarks der CPUs die wir bislang zusammenhaben:

1575747814742.png

1575747855268.png


1575747921049.png




Die Ergebnisse des SVD sind etwas strange. Da ist der 9900k der langsamste und der 6700k macht alles nass... Schwer zu erklären.

Der 3950x ist ein Biest!! Er ist quasi gleich auf mit dem ebenfalls 16-Kernigen 7960x der nicht nur 4 Kanal Speicheranbindung hat, sondern auch AVX512 Unterstützung welche hier auch voll zum Tragen kommt. Trotzdem ist der 3950x gleich schnell... wirklich ziemlich spektakulär. Auf der Mainstream Plattform gibts auch bei Intel kein AVX512.

Der 2600x schlägt sich in einigen Bereichen wacker gegen den 6700k, seine 128-bit breite AVX2 Einheit merkt man Ihm aber an. Einzig beim Pseudo Inverse Matrix Benchmark dreht er plötzlich auf und lässt selbst den 9900k hinter sich.

Was uns fehlt sind ein 8-Kerniger und ein 6-kerniger (@cm87 ?) Zen2 und ein 6-kerniger Intel. Dann wärs komplett.

Könnte man hier nochmal als Update zum Artikel bringen und/oder nochmal einen Reddit Post zu machen.

Gruss und Herzlichen Dank nochmal!
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: cm87
Zurück
Oben