El MATLAB mejora en hasta un 300% en CPUs AMD Ryzen al hacerlas pasar como una CPU Intel
MATLAB, el un popular 'laboratorio de matrices' empleado en universidades y centros de investigación y desarrollo, pero tiene grandes inconvenientes, y es que algunas de sus operaciones se pueden realizar mediante la biblioteca de rutinas matemáticas Intel MKL (Math Kernel Library), que está mal optimizada para los procesadores AMD Ryzen, lo que conlleva una enorme pérdida de rendimiento, pero esto ahora tiene arreglo.
El usuario de reddit, Nedflanders1976, ideó una forma de mejorar el rendimiento de los procesadores AMD Ryzen y Ryzen Threadripper entre un 20 y un 300 por ciento, y esta solución pasa por forzar a MATLAB a utilizar conjuntos de instrucciones avanzadas como AVX2.
Por defecto, el Intel MKL consulta el código ID de proveedor del procesador que está siendo usado, y si ve que la CPU está catalogada como "GenuineIntel", vuelve a a la instrucción SSE, lo que supone una desventaja de rendimiento significativa para los procesadores Ryzen "AuthenticAMD", que tienen una implementación completa de IA SSE4, AVX y AVX2, lo que le otorgaría notorias mejoras de rendimiento si lo empleara.
La solución, destinada únicamente a procesadores AMD Ryzen, obliga al Intel MKL a utilizar AVX2 independientemente del resultado de la consulta del ID del fabricante de la CPU. El ajuste es tan simple como poderoso, ya que solo se requiere un archivo .bat de Windows de 4 líneas con un conjunto de argumentos que inicia el Intel MKL en modo AVX2.
También puede hacer que la modificación sea "permanente" creando una variable de entorno del sistema. La variable de entorno se aplicará a todas las instancias de MATLAB, y no sólo a las generadas por el archivo .bat. Este usuario también publicó un script de referencia que destaca el impacto de rendimiento que implica usar el AVX2, donde su AMD Ryzen 2600X mejoró en hasta un 258 por ciento.
vía: TechPowerUp