Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
NewsIntel MKL: Workaround erhöht Leistung auf AMD Ryzen signifikant
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.
@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.
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.
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.
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.
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
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!
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.
@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.
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)?
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.
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
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.
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.