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

Hallo32 schrieb:
Wie verhält sich die Version ohne MKL_DEBUG_CPU_TYPE=5 auf AMD Systemen?
Läuft ohne =5 einwandfrei, gelegentlich halt etwas träge. Mein 1700X ist aber sowieso in singlecore nicht so überragend. Hast Du ein Benchmarkskript für mich? Ich lasse gerade meine Bilderkennung durchlaufen und da ist es entweder mit =5 nur marginal schneller oder die Beschleunigung wird durch mein Wunschdenken hervorgerufen ;)
 
blöderidiot schrieb:
Läuft ohne =5 einwandfrei, gelegentlich halt etwas träge. Mein 1700X ist aber sowieso in singlecore nicht so überragend. Hast Du ein Benchmarkskript für mich? Ich lasse gerade meine Bilderkennung durchlaufen und da ist es entweder mit =5 nur marginal schneller oder die Beschleunigung wird durch mein Wunschdenken hervorgerufen ;)

https://pastebin.com/NS2s4Gzg

Die kleinen Ns kann man sich sparen, da die Werte zu stark schwanken.
 
Ned Flanders schrieb:
wie wärs mit bench(4)
bench(10):
mklresult.jpg
 
Sparse und LU jeweils doppelte Leistung.

Genauer gehts mit dem Script, aber das dauert....
Ergänzung ()

blöderidiot schrieb:
Und noch keiner einer hat gemerkt, dass die vielfach zitierte "Matlab MKL AVX2 on AMD.bat" von @Ned Flanders auf den "normalen" MatLab-Rechnern gar nicht funktionieren kann, weil die Leute normalerweise keine extra MKL installiert haben und daher auch kein "call "%MKLROOT%\bin\mklvars.bat" MKL_DEBUG_CPU_TYPE=5" klappen kann. Hmmm.

Ich habe keine extra MKL installiert und bei mir funktioniert sie einwandfrei. Ich hab auch bei über 500 Downloads der Datei bislang nur positive Rückmeldungen... Hmmmm

Ich habs trotzdem mal raus genommen. Danke fürs Feedback.
 
Zuletzt bearbeitet:
Hallo32 schrieb:
Die kleinen Ns kann man sich sparen, da die Werte zu stark schwanken.
Oh je, die händisch unterlegte neue MKL funktioniert nicht, führt zu Abstürzen. Also wieder die Standard-MKL. Ich habe nur s=7500 genommen:
mklresult2.jpg
 
  • Gefällt mir
Reaktionen: Ned Flanders
MKL 2019 Update 5:

N = 7500: SVD Chol QR 10 mult Inv Pinv

TIME IN SECONDS (SIZE: 7500):
SVD: 90.664256
Cholesky: 1.101655
QR: 6.614754
10 matrix products: 74.018234
Inverse: 8.825098
Pseudo-inverse: 125.708626'

Matlab Version:

TIME IN SECONDS (SIZE: 7500):
SVD: 91.825810
Cholesky: 1.139407
QR: 6.963584
10 matrix products: 79.960580
Inverse: 9.823338
Pseudo-inverse: 131.669386

Die Abweichungen weisen alle den identischen Trend auf, sind aber relativ klein. (Intel System)
 
  • Gefällt mir
Reaktionen: Ned Flanders
Es scheint ja einen Patcher zu geben, der in Intel-compilierten Binaries das unfaire Verhalten des Dispatcher beraubt und den CPU Verndor-Check abschaltet.

Kann das jemand mit Windows bitte mal mit Spielen probieren und vorher und nachher einen Benchmark ziehen?
Das hat jetzt nichts mit der MKL Bibliothek zu tun.
 
nazgul77 schrieb:
Es scheint ja einen Patcher zu geben, der in Intel-compilierten Binaries das unfaire Verhalten des Dispatcher beraubt und den CPU Verndor-Check abschaltet.
Hab ich schon bei #38 gepostet, hatte den auch mal bei verschiedenen Benchmarks getestet, und Spielen, aber bis jetzt kein unterschied feststellen können.
 
  • Gefällt mir
Reaktionen: nazgul77 und yummycandy
Hallo32 schrieb:
MKL 2019 Update 5:
N = 7500: SVD Chol QR 10 mult Inv Pinv
Falls es von Interesse ist, das sind die Absolutwerte für den 1700X bei n=7500 (Matlab R2019b, default MKL):
Code:
[AMD Ryzen 1700X]        SVD            Cholesky    QR            10MxP        Inverse        Pseudo-inv
MKL_DEBUG_CPU_TYPE=    75.749126    1.967208    8.419702    114.281865    16.546853    129.207867
MKL_DEBUG_CPU_TYPE=5    72.758414    0.856889    4.075467     47.355703     6.143934     96.839852
Was hast Du denn für einen Prozessor?
 
  • Gefällt mir
Reaktionen: yummycandy
nazgul77 schrieb:
Es scheint ja einen Patcher zu geben, der in Intel-compilierten Binaries das unfaire Verhalten des Dispatcher beraubt und den CPU Verndor-Check abschaltet.

Aber ist das Verhalten tatsächlich so unfair?

Es steckt in der MKL ein gewisser Aufwand und man kann das auch schlicht als Produktpflege betrachten.

In einem gewissen Sinn ist die MKL wie ein Treiber. Und nur weil Intel und AMD sich - von AVX512 abgesehen - das Interface teilen, funktionieren die Optimierungen ebenso bei AMD.

Aber es ist eine Engineering-Leistung für die eigenen Produkte, ein Service für die Kunden von Intel-Prozessoren.

Natürlich will ein Unternehmen nicht, dass die Konkurrenten ebenso davon profitieren - quasi zum Nulltarif.

Das ist doch hier hoffentlich auch soweit jedem verständlich?

Das Problem ist, wenn ein Unternehmen wie Matlab nicht mehrere Backends anbietet. Aber ich bin mir sicher, dass sich das mit zunehmender Marktdurchdringung auch in diesem Bereich ändern wird.
 
Zuletzt bearbeitet:
calluna schrieb:
Aber ist das Verhalten tatsächlich so unfair?

Ja ist es, wenn du dich auf die "Ingeneuers" bzw. "Entwicklerleistung" rausredest die sprechen wir Intel ja nicht ab, aber dann sollen Sie einfach die MKL nur für Intel CPUs only anbieten.

Fadenscheinig wird es dann wenn Intel Techmagazine auffordert die MKL für Benches zu verwenden was Sie ja auch gemacht haben somit bleibt nicht nur hier ein fahler beigeschmack von "manipulatives Marketing" hängen.

das auch der Anbieter der Software nicht ganz unschuldig ist sollte natürlich dabei auch klar sein.
 
Benji18 schrieb:
aber dann sollen Sie einfach die MKL nur für Intel CPUs only anbieten.
Das tun sie auch. AMD-Prozessoren sind bei Intel-MKL offiziell 'unsupported' und wenn Du das Paket trotzdem installieren willst, bekommst Du eine dicke Warnung vorgehalten. Was willst Du noch?
 
Benji18 schrieb:
Fadenscheinig wird es dann wenn Intel Techmagazine auffordert die MKL für Benches zu verwenden was Sie ja auch gemacht haben somit bleibt nicht nur hier ein fahler beigeschmack von "manipulatives Marketing" hängen.

Das ist natürlich nicht richtig... aber wo steht das? Ich kann darüber bei Google nichts finden und beim überfliegen der Posts hier habe ich es nicht gesehen.

Und wie gesagt... Matlab verwendet auch die MKL-DNN für Deep-Learning und da gibt es keine Benachteiligung von AMD, da das ganze open source ist und jeder selbst in der Verantwortung ist, es für seine Distribution korrekt zu kompilieren.

Um was für Benchmarks geht es?
 
Zuletzt bearbeitet:
calluna schrieb:
Das ist natürlich nicht richtig... aber wo steht das? Ich kann darüber bei Google nichts finden und beim überfliegen der Posts hier habe ich es nicht gesehen.

Und wie gesagt... Matlab verwendet auch die MKL-DNN für Deep-Learning und da gibt es keine Benachteiligung von AMD, da das ganze open source ist und jeder selbst in der Verantwortung ist, es für seine Distribution korrekt zu kompilieren.

Um was für Benchmarks geht es?


Gründlich ist anders:

SV3N schrieb:
Das Intel LegitReviews in der letzten Woche sogar vorgeschlagen hat, Matlab als Benchmark für CPU-Leistung zu nutzen, muss man wohl auch nicht weiter kommentieren. ;)

"Last week @Intel suggested that we take a look at MATLAB workloads for CPU testing!", LegitReviews
 
  • Gefällt mir
Reaktionen: Benji18
  • Gefällt mir
Reaktionen: Benji18
Ok... da schreibt jemand bei Twitter, dass ihm Intel nahegelegt hat, Matlab soll bei Benchmarks verwendet werden - und ihr nehmt das als Tatsache? Hat er eine Email von einem Intel-Mitarbeiter bekommen? War er auf einer Messe und hat sich mit einem beliebigen Mitarbeiter dort von Intel unterhalten, der so etwas gesagt hat? Und so weiter.

Hat diese Person einen so guten Ruf, dass bloße Behauptungen als Tatsachen durchgehen? Vielleicht ist das so... ich kenne weder diese Webseite noch diesen Typen.
 
calluna schrieb:
Hat diese Person einen so guten Ruf, dass bloße Behauptungen als Tatsachen durchgehen? Vielleicht ist das so... ich kenne weder diese Webseite noch diesen Typen.
Wer war das genau?
 
Nathan Kirsch Gründer von Legit reviews. Also quasi ein Niemand ....
 
  • Gefällt mir
Reaktionen: Benji18 und yummycandy
Hallo32 schrieb:
https://pastebin.com/NS2s4Gzg

Die kleinen Ns kann man sich sparen, da die Werte zu stark schwanken.


Hab mit dem Script mal meinen 3700X getestet. Matlab R2019b mit standard MKL. N=7500

Debug Type / TestSVDCholeskyQR10 matrix productsInversePseudo-inverse
-80.9188211.7848457.138236106.09582114.771394128.522223
577.2839070.4374892.33543725.7975864.51221892.512077
%95,51%24,51%32,72%24,32%30,55%71,98%
 
  • Gefällt mir
Reaktionen: konkretor und blöderidiot
Zurück
Oben