MATLAB MKL Codepath Tweak steigert die Leistung von AMD Ryzen MKL erheblich



MATLAB is a popular math computing environment in use by engineering firms, universities, and other research institutes. Some of its operations can be made to leverage Intel MKL (Math Kernel Library), which is poorly optimized for, and notoriously slow on AMD Ryzen processors. Reddit user Nedflanders1976 devised a way to restore anywhere between 20 to 300 percent performance on Ryzen and Ryzen Threadripper processors, by forcing MATLAB to use advanced instruction-sets such as AVX2. By default, MKL queries your processor's vendor ID string, and if it sees anything other than 'GenuineIntel…, ' it falls back to SSE, posing a significant performance disadvantage to 'AuthenticAMD' Ryzen processors that have a full IA SSE4, AVX, and AVX2 implementation.

Die Optimierung, die von AMD Ryzen-Benutzern manuell angewendet werden soll, zwingt MKL zur Verwendung von AVX2, unabhängig vom Ergebnis der CPU-Vendor-ID-Abfrage. Der Tweak ist so einfach wie kraftvoll. Eine einfache 4-zeilige Windows-Batchdatei mit einer Reihe von Argumenten startet MKL im AVX2-Modus. Sie können die Optimierung auch dauerhaft machen, indem Sie eine Systemumgebungsvariable erstellen. Die Umgebungsvariable gilt für alle Instanzen von MATLAB und nicht nur für diejenigen, die von der Batch-Datei erzeugt werden. Nedflanders1976 hat auch ein Benchmark-Skript veröffentlicht, das die Auswirkungen von AVX2 auf die Leistung hervorhebt. Sie können jedoch Ihre eigenen Skripte verwenden und Ergebnisse veröffentlichen.
Source: Nedflanders1976 (Reddit)