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

Intel® Math Kernel Library
The Fastest and Most-Used Math Library for Intel®-Based Systems

Supported Hardware
Intel® Xeon® processor
Intel® Core™ processor family
Intel Atom® processor
Intel® Xeon Phi™ processor

Komisch, dass das auf AMD Prozessoren (absichtlich) schlechter läuft...
 
  • Gefällt mir
Reaktionen: RalphS und NameHere
Ich hoffe, dass Intels Todesstoß durch Zen nun 2020 richtig zur Geltung kommt.
Einfach nur ekelhaft dieser Drecksladen. Ein Security Desaster nach dem anderen und nun das hier.
 
  • Gefällt mir
Reaktionen: CMDCake
@Foma
Das betrifft jede Menge Softwareprodukte welche in irgendeiner Form Lineare Algebra Operationen durchführt. zB. eine Matrix-Matrix Multiplikation. Dabei wird sehr häufig auf die (auf Intelprozessoren) hoch optimierte MKL zurückgegriffen.

@Piktogramm
Solche Entscheidungen trifft der Vorstand in Zusammenarbeit mit der Rechtsabteilung, da hier immer Abschlagszahlungen im Mrd.$ Bereich und eventuell eine Unternehmenzerschlagung im Raum steht. Als Programmierer derartige Funktionalitäten ohne sichere Rückendeckung einzubauen ist nicht gerade schlau.
Anders gelagert wäre der Fall bei spezifischen Prozessoroptimierungen (zB. auf L1, L2 Cachegröße)

Da man im Fall einer Mrd.$ Klage nie mit einer sicheren Rückendeckung rechnen kann,ist ein Jobwechsel wohl die sichere Variante.
 
  • Gefällt mir
Reaktionen: Rockstar85
Dai6oro schrieb:
Ich verstehe jetzt jedenfalls warum Cinebench bei Intel in Ungnade gefallen ist. Sie verwenden AVX2 auch für AMD :D Wie können sie nur.
Früher mal haben die ja auch den Intel Compiler verwendet und wurden mit der Abfrage "zwangsbeglückt"...
 
  • Gefällt mir
Reaktionen: Creeed
Müritzer schrieb:
Na ja bei Spielen interessiert das ( noch? ) nicht oder sind da auch Beschränkungen versteckt welche CPU genutzt wird?

Rise und/oder Shadow of the Tomb Raider soll AVX2 nutzen, zumindest berichten Intel-User, dass ihre CPUs auf den AVX2-Offset-Takt fallen, was sonst in kaum einem Spiel vorkommt.
 
Piktogramm schrieb:
Deine Firma zahlt also dafür, dass du dafür sorgst, dass die Konkurrenzprodukte auf euren Systemen gleich gut oder besser läuft?

Also wenn wir eine Softwarebibliothek anbieten würden die z.B. für x64 frei verfügbar wäre und unterschiedliche Codepfade je nach CPU unterstützt, dann müsste auch der jeweils schnellste Codepfade auf jeder CPU ausgeführt werden.

Natürlich muss das nicht für die Konkurrenz optimiert werden. Aber das macht Intel für die eigenen CPUs wahrscheinlich auch nicht zu 100%. Letztlich wird da auch ein Best-Effort Ansatz gewählt.
90 % Der Performance kommen durch die breiteren Register weil du mehr Daten parallel verarbeiten kannst. So Sachen wie Optimierung auf Cachelines sind dann schon wesentlich schwieriger, da das über die Produktpalette hinweg auch nicht konstant ist.

Und ja, jeder Softwareentwickler weiß, dass der SSE Codepfad langsamer ist als der AVX2, weil nur halb soviele Daten pro Instruktion verarbeitet werden.
 
  • Gefällt mir
Reaktionen: Infi88
ofenheiz schrieb:
An sich ein Armutszeugnis des Herstellers von Matlab. Das auf Intel CPU auf die MKL (von Intel) zurück gegriffen wird ist OK. Das es aber keinen optimierten Codepath für Non-Intel CPUs gibt, ist sehr fragwürdig. :(
Würde mich nicht wundern, wenn Intel MathWorks dafür bezahlt! Wäre ja nicht das erste Mal:
Intel hat unter anderem dafür gezahlt, dass Rechnerhersteller die Einführung AMD-basierter Systeme verschoben oder stornierten.
Quelle: https://www.crn.de/markt/eu-urteil-intel-soll-1-06-milliarden-euro-strafe-zahlen.7480.html

Ich bin zwar kein Intel-Hater, aber diese Mafia-Methoden gehen mir langsam gehörig auf die Nerven...
 
  • Gefällt mir
Reaktionen: Miuwa, simosh, dister1 und 7 andere
Klasse Arbeit NedFlanders !

Und ich dachte bislang immer die Jungs von MatLab würden halbwegs gut optimierten Code nutzen (was sie ja auch tun) aber dann ist Ihnen echt entgangen daß der CompilerFlag den Code auf non-Intel CPUs verkrüppelt...
ohneWort

Hoffentlich sprichts sich das rum...
 
  • Gefällt mir
Reaktionen: CMDCake und Celinna
SV3N schrieb:
Die Programmbibliothek Math Kernel Library von Intel gilt für AMD Ryzen schlecht optimiert und notorisch langsam. Dies untermauert ein Workaround des Community-Mitglieds Ned Flanders für das Programm Matlab, das in der Wissenschaft für numerische Berechnungen genutzt wird. Mit dem „Trick“ rechnet AMD Ryzen erheblich schneller.
Auch erst mal vielen Dank an @Ned Flanders
Und danke an CB dass solche Erkenntnisse hier verbreitet werden.
Zeug wie das muss aufgedeckt und bestenfalls korrigiert werden!
 
  • Gefällt mir
Reaktionen: CMDCake, Excel, peru3232 und 2 andere
Außer mit eigenen Benches wird AMD wohl nicht viel machen.
AMD hat schließlich nichts falsch gemacht.
 
trpna schrieb:
Verstehe den Shitstorm hier gegen Intel (ausnahmsweise) nicht. Intel ist Entwickler und Maintainer der Math Kernel Library. Ich optimiere meine Software doch nicht für Konkurrenzprodukte, dafür würde ich auch keinen müden Cent aufwenden als Unternehmen.

Wenn jemand gebashed werden sollte, dann Matlab. Weil Matlab ein Interesse daran haben sollte, dass ihre Software auf möglichst vielen Systemen vernünftig performt.
Na geh geh geh!
Aber um eine Abfrage einzubauen, die die IDs von Nicht-Intel-CPUs prüft, dafür reichts? Auch ohne einen müden Cent? L O L :evillol:
 
  • Gefällt mir
Reaktionen: peru3232, Volkimann und ViridisVis
@max9123
Ja, klar ist das rechtlich abgesichert. Spätestens als Intel rechtlich dafür belangt wurde.. Deswegen schreibt Intel an ihren Softwarestack ja mittlerweile ran, dass nicht Intel CPUs zu abweichenden Ergebnissen führen können.
Viel mehr kann man Intel nicht vorwerfen. Intel optimiert halt für Intel CPUs und beachtet AMD garnicht. Das wäre anders, wenn Intels Software AMD aktiv benachteiligen würde. Also Beispielsweise bei vendor=amd die Software 50% der Laufzeit auf das Berechnen von Bogo Loops verwendet würde.
 
  • Gefällt mir
Reaktionen: RalphS
Piktogramm schrieb:
Intel optimiert halt für Intel CPUs und beachtet AMD garnicht.
Wenn Intel AMD nicht beachtet... weshalb fragen sie dann explizit ab ob ein Intel drin steckt anstatt nur das Feature-Set abzufragen (was sie ja eh machen müssen da auch nicht alle Intel CPUs AVX2 können)?
 
  • Gefällt mir
Reaktionen: ThePlayer, cbmik, CMDCake und 12 andere
Ich bin doch etwas verwirrt dass das hier so viele nicht begreifen: Der springende Punkt für die Bewertung der Situation ist doch ganz klar die Marktbeherrschende Stellung Intels.

Die Aussage: "Natürlich will Intel nicht dass es bei der Konkurrenz gut läuft" macht in diesem Fall keinen Sinn. Bei einem Marktanteil von teilweise deutlich über 90% (z.B. Server) könnte Intel damit jegliche Konkurrenz völlig unterdrücken. Sie könnten einfach jegliche Softwareanbieter erpressen dass es nur auf Intel (gut) laufen darf. Es wäre dann völlig egal wie gut das Konkurrenzprodukt ist. Und das ist natürlich aus Wettbewerbsgründen untersagt.

Bei vielen, ähnlich starken Konkurrenten wäre dies zulässig. Aber in der Situation wäre es unmöglich für AMD zu überleben.
Nur mal ein drastisches Beispiel um es ganz deutlich zu machen: Wenn Windows bei Systemstart ne Abfrage macht ob Intel oder AMD Prozessor - und Windows bei AMD einfach nicht starten würde (weil sind ja eh 95% Intel-Rechner, macht ja keinen Sinn AMD zu unterstützen), dann gäbe es instant keine Konkurrenz mehr.


Das selbe gilt übrigens für das Software-Argument... Wenn AMD spezielle Software entwickelt würde es erstmal kaum jemand nutzen weil die Verbreitung zu gering ist. Sieht man ja auch im Grafikkarten-Bereich dass es schwierig ist gegen Nvidias Stellung und ihr Software-Macht anzukommen.
Dennoch arbeitet AMD hier und entwickelt, noch dazu oft als offener Standard, z.B. Freesync, Mantle, Hairworks, etc.

Grüße
 
  • Gefällt mir
Reaktionen: Balikon, nille02, russianinvasion und 12 andere
wayne_757 schrieb:
Also wenn wir eine Softwarebibliothek anbieten würden die z.B. für x64 frei verfügbar wäre und unterschiedliche Codepfade je nach CPU unterstützt, dann müsste auch der jeweils schnellste Codepfade auf jeder CPU ausgeführt werden.

Natürlich muss das nicht für die Konkurrenz optimiert werden. Aber das macht Intel für die eigenen CPUs wahrscheinlich auch nicht zu 100%. Letztlich wird da auch ein Best-Effort Ansatz gewählt.
90 % Der Performance kommen durch die breiteren Register weil du mehr Daten parallel verarbeiten kannst. So Sachen wie Optimierung auf Cachelines sind dann schon wesentlich schwieriger, da das über die Produktpalette hinweg auch nicht konstant ist..
Richtig, und wenn Intels Compiler bzw eben hier das Programm eben nur fragt nach Intel ja/nein und dann eben nicht die Grundfunktionen nutzt, dann ist das, wie du schon sagtest, fragwürdig. Wenn nicht sogar illegal. Wird wohl Zeit für eine Meldung bei den Wettbewerbsschützern...
die Vendor String Abfrage wurde ja schon Mal zu Recht als illegal angesehen.
Arm und AMD dürfte so etwas sicher interessieren

Mal schauen ob endlich Mal richtige klagen kommen. Immer wieder traurig, was der Marktführer sich Leistet.

Das der Marktführer hier via Software 90% des Marktes ausschließt, dürfe sicher auch die Politik interessieren
 
  • Gefällt mir
Reaktionen: ThePlayer, cbmik und wayne_757
zonediver schrieb:
Na geh geh geh!
Aber um eine Abfrage einzubauen, die die IDs von Nicht-Intel-CPUs prüft, dafür reichts? Auch ohne einen müden Cent? L O L :evillol:
Weißt du denn ob im Quellcode wirklich ein if vendor = AMD || vendor = via steht?
Wahrscheinlicher ist, dass zur Codeverzweigung nur auf Intel und CPU Generation geprüft wird. Alles was kein Intel bzw. eine unbekannte CPU Generation ist nutzt den Default.
 
  • Gefällt mir
Reaktionen: RalphS und Creeed
Intel hat alles richtig gemacht und ihr eigenes Produkt auf ihre eigene CPU's optimiert.
MatLab darf villeicht ganricht das Intel Framework oder Teile davon verändern ohne die Lizenz zu verletzen. Andere dürfen, können oder wussten es nicht oder doch und taten nichts dagegen. Intel ist BÖSE! Google und Amazon sind richtig böse und trotzdem füttert Ihr die jeden Tag aufs neue.
 
  • Gefällt mir
Reaktionen: Laphonso, RalphS, garfield0603 und eine weitere Person
Zurück
Oben