BF16 Component-Product Emulation of FP32 and FP64 GEMM on Intel AMX
Este artículo presenta un algoritmo orientado a CPU que aprovecha los productos de matrices Intel AMX BF16 para emular operaciones GEMM de alta precisión FP32 y FP64, logrando un rendimiento competitivo y una precisión ajustable mediante la descomposición de los operandos en múltiples componentes de baja precisión y su acumulación en mayor precisión.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Las computadoras modernas están siendo construidas con una división creciente en su maquinaria interna. Por un lado, existen motores potentes diseñados específicamente para la inteligencia artificial, que sobresalen al realizar miles de millones de cálculos simples muy rápidamente. Estos motores funcionan mejor con números que son cortos y sencillos, sacrificando un minúsculo detalle por una velocidad masiva. Por el otro lado, el mundo del descubrimiento científico —simulando patrones climáticos, modelando cómo se unen los átomos o prediciendo el flujo de fluidos— todavía depende de números que son largos y precisos. Estos cálculos científicos necesitan cada pizca de detalle para mantenerse estables y precisos, pero las partes estándar de las computadoras que los manejan suelen ser más lentas y menos eficientes que los nuevos motores de IA. Esto crea un dilema: los científicos necesitan la velocidad del nuevo hardware, pero no pueden permitirse perder la precisión que su trabajo exige.
Investigadores de Maginfra Co., Ltd. en China han explorado una forma de cerrar esta brecha utilizando un tipo específico de chip de computadora llamado Intel AMX. Su objetivo era ver si los motores de IA rápidos y de baja precisión podían ser engañados para realizar las matemáticas lentas y de alta precisión requeridas por la ciencia. En lugar de pedirle al chip que realice la matemática difícil directamente, dividieron el problema en piezas más pequeñas y simples. Imagine intentar medir una distancia muy larga con una regla que solo tiene marcas para pulgadas enteras. Podría medir las pulgadas enteras, luego medir la fracción restante, luego medir la diminuta brizna que queda, y sumar todo para obtener un total preciso. Los investigadores aplicaron esta misma lógica a los números. Tomaron un único número complejo y lo dividieron en varias partes más simples que el motor de IA rápido pudiera manejar fácilmente. Luego, ejecutaron muchos cálculos rápidos sobre estas partes y sumaron cuidadosamente los resultados para reconstruir la respuesta final, altamente precisa.
El equipo probó este enfoque en dos niveles diferentes de precisión. Primero, abordaron la matemática de precisión simple, que es el estándar para muchas aplicaciones científicas. Descubrieron que, al dividir cada número en tres partes y ejecutar seis cálculos específicos, podían lograr resultados que eran tan precisos como el mejor software existente, pero significativamente más rápidos. En los chips de computadora que probaron, este método funcionó entre 1.14 y 2.56 veces más rápido que la forma estándar de realizar la matemática. La aceleración fue más notable con conjuntos de datos más grandes, donde la carga de dividir y reensamblar los números se volvió menos importante en comparación con la pura velocidad de los cálculos.
Cuando pasaron a la matemática de doble precisión, que es aún más exacta y utilizada para las simulaciones científicas más exigentes, el desafío aumentó. Aquí, los investigadores tuvieron que dividir cada número en seis partes. Debido a que los cálculos debían ser reensamblados con extremo cuidado, el proceso se volvió más complicado. Probaron diferentes versiones de este método, manteniendo entre seis y veintiuna de las pequeñas piezas de cálculo. Descubrieron un compromiso claro: mantener más piezas hacía que la respuesta fuera más precisa, pero también ralentizaba el proceso. Con solo seis piezas, el método era lo suficientemente rápido como para superar al software estándar para problemas muy grandes, funcionando hasta 1.7 veces más rápido. Sin embargo, a medida que añadían más piezas para mejorar la precisión, el trabajo extra requerido para gestionarlas consumía la ventaja de velocidad. Eventualmente, intentar mantener veintiuna piezas hacía que el método fuera más lento que el enfoque estándar, a pesar de ser más preciso.
El estudio también destacó que esta técnica no es una solución universal para cada situación. Funciona mejor cuando los números que se calculan se mantienen dentro de un rango específico, similar a cómo una regla con una longitud limitada no puede medir una distancia que sea demasiado vasta o demasiado diminuta sin ajustes especiales. Los investigadores señalaron que su método no funciona para todo tipo posible de número, particularmente aquellos que son extremadamente grandes o extremadamente pequeños, y no garantiza una coincidencia perfecta, bit a bit, con el software existente. En cambio, ofrece una nueva herramienta para científicos que necesitan alta velocidad y alta precisión, siempre que sus datos se ajusten a los límites del método. Al demostrar que el hardware de baja precisión puede usarse para resolver problemas de alta precisión, el trabajo sugiere un futuro donde los motores especializados construidos para la inteligencia artificial también puedan acelerar el trabajo pesado del descubrimiento científico.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.