Con su microarquitectura de CPUs “Zen”, AMD removió el soporte para el set de instrucciones FMA4, en papel, mientras todavía mantenían FMA3. Level1Techs descubrió que los CPUs “Zen” sí soportan instrucciones FMA4, incluso aunque el set de instrucciones no esté expuesto en el sistema operativo. FMA (suma y multiplicación fusionadas) es una forma eficiente para computar álgebra lineal. FMA3 y FMA4 no son generaciones del set de instrucciones (como SSE3 y SSE4), sino que el dígito denota el número de operaciones por instrucción. El soporte para ambos se introdujo por AMD en 2012 con los procesadores de la serie FX, mientras Intel añadió soporte a FMA3 en los Haswell de 2013.
Las razones exactas por las cuales AMD dejó obsoleto FMA4 con “Zen” se desconocen, pero algunos desarrolladores especulan que fue porque la implementación de FMA4 tenia bugs, incluso aunque sea más eficiente (33% más de rendimiento). La adopción de Intel de FMA3 lo hizo más popular, y por lo tanto más estable a través de los años. Level1Techs usó el programa de prueba de OpenBLAS para FMA4 para confirmar todo esto, dando instrucciones FMA4 a los procesadores “Zen” no devuelve un solo error, sino que el procesador continúa y completa la operación. Esto es interesante porque FMA4 no está expuesto como un bit de CPUID, y el sistema operativo no tiene idea que el procesador soporta la instrucción. Para álgebra lineal, se comprobó que FMA4 es más eficiente que AVX tanto en precisión simple como doble.
¿Qué opinan de estas instrucciones ocultas en los Zen de AMD?
Fuente: TechPowerUp