MKL Tweak auf Ryzen Systemen verbessert die Leistung drastisch

ZeroStrat

Captain
Dabei seit
Nov. 2017
Beiträge
3.327
Der User @Ned Flanders hat einen besonderen Tweak entdeckt, der die Leistung auf Ryzen Systemen drastisch verbessert, wenn Intel's MKL zum Einsatz kommt.

Nähere Infos + eine Anleitung siehe hier: https://www.techpowerup.com/261241/...oosts-amd-ryzen-mkl-performance-significantly

Der Originalartikel bei reddit ist hier zu finden: https://www.reddit.com/r/matlab/comments/dxn38s/howto_force_matlab_to_use_a_fast_codepath_on_amd/

Der Thread soll dazu dienen, unterschiedliche Benchmarks zusammenzutragen. Dabei soll sich nicht nur auf Matlab beschränkt werden. Python ist wohl ebenso betroffen.

Ihr seid herzlich eingeladen, eure Ergebnisse zu posten und den Sachverhalt zu diskutieren. Bitte kein Gebashe gegen Intel. Das ist ein Sachthread.
Ergänzung ()

Ich habe als erstes den internen Benchmark von Matlab verwendet, welcher mit bench(n) aufgerufen wird.

Aktiver AVX2 Tweak R9 3900X@stock:
Screen Shot 11-18-19 at 06.40 PM.PNG


Kein AVX2 Tweak R9 3900X@stock:
Screen Shot 11-18-19 at 06.48 PM.PNG
 
Zuletzt bearbeitet:

Ned Flanders

Admiral
Dabei seit
Aug. 2004
Beiträge
8.927
Ich bin noch unterwegs und kann noch nichts beitragen, aber um numpy stehts ebenfalls nicht gut. Bin durch einen Reddit User hierauf aufmerksam gemacht wirden.

1574104575211.png


Quelle

Der Code der hier gebencht wurde ist auch in der Quelle verfügbar. Vieleicht mag ja einer hier mal testen!

Der selbe User hat den Workaround getestet.

Apparently this trick does also some magic to pythons numpy on windows (std conda install that brings the mkl lib in and no way to change to openblas easily). The code shown in the article below took 64s on my Ryzen 3600 with the workaround and 266s without it! Thank you for posting!
 
Zuletzt bearbeitet:

Ned Flanders

Admiral
Dabei seit
Aug. 2004
Beiträge
8.927

Iscaran

Commander
Dabei seit
Dez. 2007
Beiträge
3.049
Das müsste doch eigentlich per Compiler-Flag switch in der nächsten Matlab Version gefixed sein...falls nicht mach ich mir ernsthaft sorgen um die MatLab-Devs.

ebenso mit NumPy....wenn das nicht bis Januar gefixed ist, machen sich die doch lächerlich :-).

Well Done Ned! Gute Arbeit.
 

Piktogramm

Vice Admiral
Dabei seit
Okt. 2008
Beiträge
6.692

Rockstar85

Commodore
Dabei seit
Sep. 2004
Beiträge
4.373
Das wäre in der Tat eine Möglichkeit. Sollte nun ein überhasteter Hot fix kommen, gewinnt AMD immerhin. Schön ist das mitnichten
 

Battletoad

Cadet 4th Year
Dabei seit
Apr. 2017
Beiträge
117
ich habe dazu noch diesen link gespeichert. leider hab ich keine ahnung wie ich das in PyCharm zum laufen kriege (trotz hilfe des authors). hätte meine monte-carlo-simulationen bestimmt gut beschleunigt
 

Rickmer

Fleet Admiral
Dabei seit
Sep. 2009
Beiträge
13.382

ZeroStrat

Captain
Ersteller dieses Themas
Dabei seit
Nov. 2017
Beiträge
3.327

yummycandy

Commodore
Dabei seit
März 2005
Beiträge
4.132

stone1978

Cadet 4th Year
Dabei seit
Juni 2003
Beiträge
121

Ned Flanders

Admiral
Dabei seit
Aug. 2004
Beiträge
8.927
Wie kommt es, das bei kleinen 'n' - Iterationen? die Zeiten deutlich schlechter sind mit Tweak?
Nach meiner Erfahrung ist der erste run einen hauch langsamer als der folgende. Das ist also ein Artefakt. Der Bench dauert aber relativ lange, weswegen es etwas nervig ist den x-mal zu wiederholen. Das schlägt sich auch nur in den kleinen n's nieder in dem Bench,

Das siehst du auch im Integrierten Benchmark von Matlab. Die ersten ein/zwei Läufe sind of langsamer.

1574118821893.png


Danach ist es oben.

1574118843034.png
 

yummycandy

Commodore
Dabei seit
März 2005
Beiträge
4.132
Habe das jetzt gelesen. Nur heißt das ich muss Matlab installieren und dann kann man mit dem Workaround überall bzw. in Programmen wo diese Bibliotheken verwendet werden mit einem Performancegewinn rechnen?

Oder betrifft das dann nur Matlab?
Prinzipiell "sollte" das ganze in allen Programmen funktionieren, die die MKL von Intel benutzen. Matlab ist nur ein weiteres Beispiel davon. Ist also nicht nötig Matlab zu installieren, weil es sich um einen MKL-Workaround handelt.
 
Zuletzt bearbeitet:

Discovery_1

Commander
Dabei seit
März 2018
Beiträge
2.722
Wären die Benchmarks von SiSoftware Sandra evtl. auch aussagekräftig? Da wird auch viel mit AVX2 gearbeitet. Aber ich hab' null Ahnung von der Materie.
 

Ned Flanders

Admiral
Dabei seit
Aug. 2004
Beiträge
8.927
Sisoft verwendet afaik nicht die MKL in ihren Benchmarks. Aber Du kannst das gerne mal mit und ohne Workaround drüber laufen lassen.

AVX2 ist nicht grundsätzlich betroffen, sondern der Support von Befehlsatzerweiterungen durch die MKL ist nicht gewährleistet.

@Ned Flanders Gilt das nur fuer die Conda Version von Numpy oder auch die Standard pip Version auf Windows?
Jede Version von Numpy, die auf die MKL als numerische lib zurückgreift.

Ich selbst bin kein Experte für Python. Ein paar Benchmarks wären aber sehr wünschenswert. Hast Du Dir mal die Quelle für den numpy Benchmark oben angeschaut? Vieleicht kannst du den Benchmark ja mit ein paar derivaten nachvollziehen und hier bringen. Das wäre echt super!
 
Top