News Intel MKL: Workaround erhöht Leistung auf AMD Ryzen signifikant

@Ned Flanders Ich schätze mal, die haben keine Lust auf Supportanfragen aufgrund unterschiedlicher BLAS Libs. Kann ich irgendwie verstehen. :)
Auf der anderen Seite ists natürlich unfair gegenüber Anwendern, die von anderen Libs profitieren würden.
 
Ah - und weil wir alle so clevere Programmierer sind - wie schwer kann es sein ein "korrekte" CPUID-Query zu machen bei Installation und die entsprechend "optimierte" BLAS zu laden ?

Vermutlich: "nicht möglich => weil haben wir noch nie gemacht"...
Allein schon die Antwort...wenn Speed so wichtig ist nehmt doch Linux.
 
  • Gefällt mir
Reaktionen: Sennox
gibts eigentlich was neues hier zum Thema? Wie hat AMD reagiert, wie Mathlabs usw.
 
  • Gefällt mir
Reaktionen: Ned Flanders
Celinna schrieb:
gibts eigentlich was neues hier zum Thema? Wie hat AMD reagiert, wie Mathlabs usw.

Ohne jetzt was offizielles sagen zu können ... in vier Wochen kommt Matlab 2020a raus und ich empfehle jedem Matlab User mit AMD CPUs oder mit Ambitionen AMD CPUs einsetzen zu wollen dringend sich das finale 2020a Production Release mal näher anzuschauen. ;)
 
  • Gefällt mir
Reaktionen: peru3232, Argoth, Celinna und 3 andere
Tolle Arbeit @Ned Flanders! Was für ein Armutszeugnis für den Hersteller. Ich hoffe, dass meine Fakultät den Kram endlich vollständig verbannt ...
 
  • Gefällt mir
Reaktionen: Ned Flanders
KuestenNebel schrieb:
Ich hoffe, dass meine Fakultät den Kram endlich vollständig verbannt ...

Das alleine wird es aber nicht bringen. Viel wichtiger wäre das die MKL nicht ohne Alternative als Default ausgeliefert wird. NumPy, Microsoft R Open, PyTorch .... die sind alle dabei.
 
  • Gefällt mir
Reaktionen: Iscaran und cm87
numpy und pyTorch lasse ich in dieser Liste nicht gelten, weil man dafür keinen Haufen Geld hinlegen muss :D
 
  • Gefällt mir
Reaktionen: Ned Flanders und Iscaran
@KuestenNebel

Wäre halt gut, wenn gerade die OSS Projekte möglichst bald nachziehen. Bei Matlab kennt den Workaround bald jeder, ob die NumPy, PyTorch, Anaconda community sich dem auch bewusst ist weiss ich nicht. Vielleicht muss man da auch nochmal Wellen machen.

Was ich Matlab anrechnen muss ist die Erfahrung mit dem Support seit dem Reddit Beitrag. Ich dachte erst die würden verschnupft reagieren, das Gegenteil ist der Fall.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Sennox und Iscaran
Ist doch ein gutes Zeichen, dass sie sich der Sache annehmen.

Jetzt nix zu machen würde sicherlich einiges an negativer Resonanz nach sich ziehen, deshalb hat es den Anschein als kümmert man sich. Das ist löblich.
 
  • Gefällt mir
Reaktionen: Ned Flanders
Ned Flanders schrieb:
Was ich Matlab anrechnen muss ist die Erfahrung mit dem Support seit dem Reddit Beitrag. Ich dachte erst die würden verschnupft reagieren, das Gegenteil ist der Fall.
Bist du eingestellt? :D
 
  • Gefällt mir
Reaktionen: Ned Flanders
Piktogramm schrieb:
Der Aufwand liegt doch nicht daran ein paar Parameter zu ändern sondern sicher zu stellen, dass die entsprechenden Codepfade auch auf AMD CPUs immer exakt die gewollten Ergebnisse liefern und unter keinen Umstand (zusätzliche) Fehler provozieren. Wobei das perspektifisch auch auf alle kommenden Versionen der MKL zutreffen muss.

Die Franzosen müssen das auch schon ausgiebig getestet haben, oder sie haben einen massiven Fehlkauf hingelegt.

https://www.top500.org/system/179700
 
Ned Flanders schrieb:
Ohne jetzt was offizielles sagen zu können ... in vier Wochen kommt Matlab 2020a raus und ich empfehle jedem Matlab User mit AMD CPUs oder mit Ambitionen AMD CPUs einsetzen zu wollen dringend sich das finale 2020a Production Release mal näher anzuschauen. ;)
Gibt es hier irgendwo einen Thread mit Erfahrungen zu 2020a?
Ist das ganze jetzt schneller als mit dem Workaround?
 
Gatos schrieb:
Gibt es hier irgendwo einen Thread mit Erfahrungen zu 2020a?
Ist das ganze jetzt schneller als mit dem Workaround?

Also nach dieser Email, die mich vor einer Woche erreicht hat, gäbe es eigentlich Grund zur Freude:

1585249454600.png


Nur leider funktioniert das wohl noch nicht. Sie arbeiten daran. Lange kanns nicht mehr dauern, aber schneller als per Variable wirds nicht, denn deren Fix entspricht dem Workaround per Sys Variable. Die andere gute Nachricht ist aber das sie die Variable damit auch offiziell validiert haben.

Ich halte Euch auf dem laufenden falls es was neues gibt. Ich werd dann auch den Reddit Post nochmal updaten und eventuell hat @SV3N ja auch interesse die frohe Botschaft nochmal als Update einzupflegen. Aber wie gesagt, noch ist es nicht ganz passiert.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: cm87, Gatos und PS828
Ned Flanders schrieb:
aber schneller als per Variable wirds nicht, denn deren Fix entspricht dem Workaround per Sys Variable.
Schade. Ich hatte gehofft, es würde einen effizienteren Weg geben, als einem AMD-System zu erzählen, dass es eigentlich auf den Namen Intel hört.

Trotzdem danke für das Update! Aber dann kann ich mir es sparen, nochmal einen Benchmark zu machen mit meinen Systemen.
 
Gatos schrieb:
Ich hatte gehofft, es würde einen effizienteren Weg geben, als einem AMD-System zu erzählen, dass es eigentlich auf den Namen Intel hört.

Das System ist sich seiner Identität bewusst, du lügst nur die Intel MKL an. Aber ich weiss was Du meinst, und es gibt mit Sicherheit noch effizientere Wege, aber diese bedeuten eben teure Entwicklungsarbeit. Bis es soweit ist, dürfte das hier eine passable Lösung sein und ich finde es soweit gut wie schnell Matlab reagiert (wenn es wirklich passiert).

Nun ist es auch an AMD die OpenBLAS zu pushen und als offene und leistungsstarke Alternative zu etablieren. Dann hat es sich mit der MKL eh bald erledigt.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Gatos und Cobra975
Naja - einfach nur open BLAS zu verwenden ist leider keine gute Idee. Da die MKL extrem gut optimiert ist und in vielen Benchmarks die BLAS leider schlägt.
https://markus-beuckelmann.de/blog/boosting-numpy-blas.html

Und das ist nur numPy. Ähnliches gilt natürlich für viele andere Codes.
"We can see that there are tremendous differences in run time. Unsurprisingly, the default implementation seems to be slowest in most regards (by far!). Intel’s Math Kernel Library (Intel MKL) performs best, which is again not truly surprising, given the fact that I use an Intel i5 processor on my machine."

Vielleicht müsste man halt eher auf ACML coden für AMD CPUs, aber ACML ist ebenfalls bei weitem nicht so gut wie Intel MKL.

In der Regel funktioniert ja MKL gut - nur bei manchen Sachen ist halt dieser dümmliche "Fallback" to generic x86 code absoluter Mist. Da müssten die Entwickler solcher "in between software" wie MatLab eben aufpassen und das mal testen inwieweit hier die Intel Library non-intel CPUs ausbremst. Falls es passiert entweder allgemein auf BLAS switchen für diese Tasks (für non-Intel CPUs) oder eben den MKL-Workaround applizieren.

So oder so eine Sauereri vor allem von Intel hier via MKL nicht richtig zu prüfen ob eine CPU bestimmte features supported sondern als "generic path" direkt den langsamst möglichen zu wählen.

EDIT: ah endlich wieder gefunden
Extensiver Test von openBLAS vs IntelMKL auf Ryzen CPUs:
https://discourse.julialang.org/t/openblas-is-faster-than-intel-mkl-on-amd-hardware-ryzen/8033
Man sieht für kleine Workloads ist MKL immer noch schneller - trotz sogar möglicherweise Problemen wegen "Genuine Intel" Trickserei.
 
Zuletzt bearbeitet:
Iscaran schrieb:
Vielleicht müsste man halt eher auf ACML coden für AMD CPUs

Also noch eine Closed Source Variante halte ich für keine gute Idee, selbst wenn sie nicht gegen andere Architekturen pessimiert ist wie die MKL. Wie wenig diese CPU spezifischen Optimierungen bringen sieht man ja an der MKL auf AMD. Lieber, und das meinte ich mit pushen, Geld in die Entwicklung der OpenBLAS lib stecken damit diese schneller wird wo es bislang hapert, denn das sind spezifische Dinge und kein generelles Problem. An und für sich ist die OpenBLAS bereits ziemlich fix unterwegs.
 
Da hast du natürlich Recht. Einfach eine andere Closed Source nehmen bringt vermutlich nichts. Zumal ich nicht wirklich weiss wie optimiert ACML ist. Vermutlich sogar noch schlechter als per Default auf openBLAS zu gehen.

Aber gleichzeitig würde man halt bei vielen stark optimierten Sachen die bisherigen Vorteil der MKL aufgeben wenn man einfach "stur" auf openBLAS geht.

Am besten wäre es wenn die Entwickler sensitiviert sind auf solche Phänomene und hier öfter einfach mal "per Default" dieselben Benches mal mit nem Intel mal mit nem AMD fahren und bei "großen" Diskrepanzen halt mal nachschauen was das soll.

Eine "Genuine Intel" Abfrage auszuhebeln ist ja für einen halbwegs versierten ja kein Voodoo und als "Schnelltest" auf BIAS durchaus geeignet.

Wenn die großen Mat-Works-Studios erstmal Intel konsequent auf die Finger klopfen würden bzw. derartige Spielereien möglichst öffentlich breit treten, dann hört sich das Spiel seitens Intel sicher schnell auf.
 
Zurück
Oben