Der Entdecker/User "Ned Flander"s von CB hat folgendes noch geschrieben, denke das beschreibt die Situation sehr gut, darauf könnte man sich eigentlich einigen:
"Ich schreib hier nochmal meine Meinung dazu rein falls die noch nicht ganz klar war.
Die Ursache für die Misere ist die Abfrage des Vendor Strings durch die Intel MKL. Dieser führt dazu, dass völlig unabhängig vom vorhanden Feature Set auf CPUs die nicht von Intel stammen kein Codepfad, moderner und schneller als SSE benutzt wird. AFAIK ist das auch ein einmaliges Vorgehen. In jedem Programmers Guide, auch denen von Intel wird eine Feature Abfrage und nicht der Vendor String zur Ermittlung der Fähigkeiten einer CPU empfohlen.
Warum Intel das macht ist nur zu logisch. Ihre eigenen CPUs werden durch dieses Vorgehen kein Stück schneller. Das ist eine aktive Maßnahme um die Konkurenz schlecht dastehen zu lassen, ein Performance Kill Switch. Eine voll auf Intels Architekture (Cachegrößen, Anbindung, Latenzen etc.) optimierte MKL wäre auch so auf Intel CPUs sicherlich schneller als auf nicht intel CPUs, aber natürlich keine 400%. Das ist der Punkt den man diskutieren kann. Ist das gut? Ist das schlecht? Ist das sinnvoll? Ist das gerecht? Ist das normal? Die Meinungen dazu gehen auseinander und nach heftigem Schütteln trennen sie sich typischer Weise in eine blaue und eine grüne Phase. Ich persönlich find das absoluten Käse.
Allerdings bewirbt Intel die MKL auch nicht als universale, numerische Library sondern als die schnellste nummerische Library auf Intel CPUs.
Matlab und noch so einige andere haben diese Library nun in ihre Software übernommen und Intel pushed Reviewer dazu doch mal Benchmarks mit einer solchen Software zu machen. --> Marketing.
Aus Endkunden Sicht könnte einem das alles bis zu diesem Punkt eigentlich völlig egal sein, solange die Software Hersteller nicht so bescheuert wären die MKL als EINZIGE nummerische Library einzubinden und dem Benutzer gar keine Wahl lassen würden eine Alternative zu verwenden.
Ich beispielsweise benutze Matlab für allerlei Zeug. Die Lizenzgebühren für Matlab sind nicht gerade gering. Matlab gibt als Systemvorraussetzung an, dass eine Intel oder AMD CPU mit AVX2 Unterstützung empfohlen ist, was absurd ist, denn AVX2 wird auf AMD CPUs garnicht unterstützt, weil die MKL das unterbindet. Eine alternative Lib kann ich aber selbst manuel garnicht einbinden.
Bei anderen kann man das zwar, aber es ist oft mit erheblichem Aufwand verbunden.
Wer hat also Schuld an der Misere:
Matlab hat die Wahl, sie könnten problemlos zwei alternative Libs beim Installieren anbieten. Das ist kein Hexenwerk. Octave bietet sogar mehrere an. Warum tun sie es nicht? Ignoranz nehme ich an. Eventuell auch Unwissen. Mein Kontakt mit dem Support suggeriert: vermutlich beides.
Intel ist auch kein zahmes Kätzchen hier. Sie vertreiben proaktiv Software die mit einem Performance Kill Switch ausgestattet ist und benutzen diese Software dann um zu zeigen wie viel schneller ihre Hardware sei. Dabei spielt eben auch Marktmacht eine Rolle. Sie versuchen aktiv Prozessoren der Konkurenz für gewisse Aufgaben untauglich zu machen. Wer sowas verteidigt... ich verstehe es nicht.
Meine Hoffnung: Das meine Aktion etwas "awareness" für diese Problematik weckt, denn obwohl ich das immer wieder angesprochen habe, hört doch keiner zu. Ich bin jedenfalls gespannt, ob Firmen wie Matlab jetzt darauf reagieren und dem User eine sinnvolle Wahl anbieten. Das gilt auch für die anderen Projekte wie numpy etc. Das Intel sein Verhalten ändert, davon würde ich nicht ausgehen, zumindest solange nicht, bis die meisten Projekte und Hersteller anfangen dem User die Wahl direkt bei der Installation zu überlassen."
Quelle:
News - Intel MKL: Workaround erhöht Leistung auf AMD Ryzen signifikant| Seite 22 | ComputerBase Forum