El ajuste de codepath de MATLAB MKL aumenta significativamente el rendimiento de AMD Ryzen MKL



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.

El ajuste, destinado a ser aplicado manualmente por los usuarios de AMD Ryzen, obliga a MKL a usar AVX2 independientemente del resultado de la consulta de ID de proveedor de CPU. El ajuste es tan simple como poderoso. Un simple archivo por lotes de Windows de 4 líneas con un conjunto de argumentos inicia MKL en modo AVX2. También puede hacer que el ajuste sea 'permanente' creando una variable de entorno del sistema. La variable de entorno se aplicará a todas las instancias de MATLAB, y no solo a las generadas por el archivo por lotes. Nedflanders1976 también publicó un script de referencia que destaca el impacto en el rendimiento de AVX2, sin embargo, puede usar sus propios scripts y publicar resultados.
Source: Nedflanders1976 (Reddit)