Articulo de referencia

Bloque de punto flotante

El punto flotante por bloques ( BFP ) es un método que se utiliza para proporcionar una aritmética cercana al punto flotante al usar un procesador de punto fijo . BFP asigna un ...

El punto flotante por bloques ( BFP ) es un método que se utiliza para proporcionar una aritmética cercana al punto flotante al usar un procesador de punto fijo . BFP asigna un grupo de mantisas (la parte no exponencial del número de punto flotante) a un único exponente, en lugar de asignar un exponente a cada mantisa individualmente. BFP puede ser ventajoso para limitar el uso de espacio en el hardware para realizar las mismas funciones que los algoritmos de punto flotante, al reutilizar el exponente; algunas operaciones sobre múltiples valores entre bloques también se pueden realizar con una cantidad reducida de cálculos. [ 1 ]

El exponente común se obtiene a partir de los datos con mayor amplitud en el bloque. Para hallar el valor del exponente, se debe calcular el número de ceros iniciales ( contar los ceros iniciales ). Para ello, el número de desplazamientos a la izquierda necesarios para los datos debe normalizarse al rango dinámico del procesador utilizado. Algunos procesadores disponen de mecanismos para calcular esto automáticamente, como las instrucciones de detección y normalización del exponente. [ 2 ] [ 3 ]

Los algoritmos de punto flotante por bloques fueron estudiados extensamente por James Hardy Wilkinson . [ 4 ] [ 5 ] [ 6 ]

BFP se puede recrear en software para obtener mejoras de rendimiento menores.

Formatos de microescalado (MX)

Los formatos de microescalado (MX) son un tipo de formato de datos de punto flotante en bloque (BFP) diseñado específicamente para cargas de trabajo de IA y aprendizaje automático. Los números de punto flotante muy pequeños (minifloats) se utilizan en el aprendizaje automático para mejorar el rendimiento, pero, al igual que los números de punto fijo, presentan rangos representables reducidos. El uso de un exponente compartido permite aumentar el rango de valores representables con muy poco espacio y sobrecarga de rendimiento. [ 7 ] [ 8 ] El formato MX, respaldado y estandarizado por importantes actores de la industria como AMD, Arm, Intel, Meta, Microsoft, NVIDIA y Qualcomm, representa un avance significativo en los formatos de datos de precisión reducida para IA. [ 9 ]

El formato MX contiene un bloque de k (generalmente establecido en 32) elementos, cada uno de los cuales tiene una longitud de d bits. Estos elementos comparten un factor de escala de w bits, de modo que el bloque completo tiene un tamaño de w + kd bits. Los tipos de datos MX estándar incluyen: [ 10 ]

Aquí, E8M0 es efectivamente la parte exponencial de un número de coma flotante de precisión simple, pudiendo representar potencias de 2 entre 2 −127 y 2 127 . Se reserva un único valor para NaN. Para descripciones de tipos de datos como FP8-E5M2, consulte Minifloat §  Aprendizaje automático .

Se ha demostrado que los formatos MX son eficaces en diversas tareas de IA, incluidos los modelos de lenguaje grandes (LLM), la clasificación de imágenes, el reconocimiento de voz y los sistemas de recomendación. [ 11 ] Por ejemplo, MXFP6 se ​​asemeja mucho a FP32 para tareas de inferencia tras un ajuste fino que tiene en cuenta la cuantización, y MXFP4 puede utilizarse para entrenar modelos de lenguaje generativos con una penalización mínima en la precisión.

El formato MX ha sido estandarizado a través del Open Compute Project (OCP) como la especificación de formatos de microescalado (MX) v1.0. [ 9 ] [ 10 ] También se han publicado bibliotecas de emulación para proporcionar detalles sobre el enfoque de ciencia de datos y resultados seleccionados de MX en acción. [ 12 ]

Desarrollo posterior

El formato MXFP4 agrupa 32 minifloats de 4 bits con un rango dinámico muy bajo. Para reducir los artefactos de cuantización, Nvidia introdujo NVFP4, que agrupa solo 16 números FP4-E2M1 en un bloque y cambia el factor de escala a E4M3 para mayor precisión. Para recuperar el rango dinámico, los numerosos bloques de un tensor se someten a un factor de escala fp32 (E8M23) compartido para una configuración de dos capas. No se utilizan números M0 para el escalado; por lo tanto, todo el escalado requiere una multiplicación real en lugar de un desplazamiento de bits o una simple manipulación de la parte exponencial de un valor de punto flotante. [ 13 ]

Comparación de MXFP4 y NVFP4, cada uno de 4 bits de longitud ( d ), que contiene un bloque de k elementos y comparte un factor de escala de 8 bits ( w ), de modo que el bloque completo tiene un tamaño de d · k + w bits:

Soporte de hardware

La compatibilidad de hardware con BFP se presenta en dos niveles: compatibilidad con el tipo de datos subyacente de los miembros (punto fijo entero o minifloats) y una implementación más rápida de la operación de escalado.

BFP con elementos de punto fijo

  • d-Matrix Jayhawk II maneja BFP12, BFP16 y SBFP12. [ 14 ] Estos tipos de datos son BFP basados ​​en punto fijo: BFP12 se refiere a tener un exponente compartido de 8 bits con un grupo de elementos UINT4, BFP16 se refiere a tener un exponente compartido de 8 bits con un grupo de elementos UINT8, y SBFP12 se refiere a tener un exponente compartido de 8 bits con un grupo de elementos INT4 con signo. [ 15 ]
  • Los módulos Tenstorrent Grayskull e75 y e150, así como los módulos Wormhole n150 y n300, admiten lo que el fabricante denomina BFP8, BFP4 y BFP2. [ 16 ] Estos módulos no tienen exponente propio; en otras palabras, son de punto fijo escalado. [ 17 ]
  • La APU AMD Strix Point (comercializada como la serie Ryzen AI 300 ) admite el bloque FP16 en la unidad de procesamiento neuronal (NPU) XDNA2. [ 18 ] [ 19 ] Nuevamente, los elementos no tienen exponentes propios. [ 20 ]

BFP con elementos miniflotantes

El manejo paralelo de números minifloat es más complejo de emular en software que el manejo de enteros empaquetados. Por lo tanto, la compatibilidad de hardware con el minifloat subyacente es fundamental para ofrecer compatibilidad con BFP con minifloat.

  • Los procesadores x86 que implementan el conjunto de extensiones AVX10.2 admiten los formatos OCP-FP8 E5M2 y E4M3 en formato empaquetado. La extensión no añade escalado de bloques acelerado, que puede realizarse utilizando operaciones individuales existentes. [ 21 ]
  • Las GPU AMD Instinct admiten OCP-FP8 y MXFP8 empaquetado (E5M2, E4M3) desde CDNA 3. CDNA 4 añade compatibilidad con MXFP4 y MXFP6. CDNA4 también admite MXINT8, un formato con elementos de punto fijo.
  • Los núcleos tensoriales de las GPU de Nvidia admiten FP8 desde Hopper (microarquitectura) . FP4 y FP6 se ​​añadieron en Blackwell (microarquitectura) . [ 22 ] El tamaño de 32 de ancho de los formatos MX es muy adecuado para la estructura de los núcleos tensoriales, que también proporcionan escalado de hardware acelerado. [ 23 ] Blackwell también proporciona escalado acelerado para NVFP4. [ 13 ]
  • Los aceleradores Intel Gaudi 2 y posteriores también admiten FP8. [ 24 ]

Otros tipos de BFP

  • AMD Versal AI Edge Series Gen 2 admite los tipos de datos MX6 y MX9. Estos tipos de datos tienen un sistema de compartición de exponentes de dos niveles, un compromiso entre el MX estándar y el BFP basado en punto fijo. [ 25 ] El hardware también admite operaciones INT8 rápidas para su uso en BFP tradicional. [ 26 ]

Véase también

Referencias

  1. "Punto flotante de bloque" . Diccionario BDTI DSP . Berkeley Design Technology, Inc. (BDTI). Archivado del original el 11 de julio de 2018. Consultado el 1 de noviembre de 2015 .
  2. Chhabra, Arun; Iyer, Ramesh (diciembre de 1999). "TMS320C55x Implementación de punto flotante en bloque en el DSP TMS320C54x" (PDF) (Informe de aplicación). Soluciones de procesamiento de señales digitales. Texas Instruments . SPRA610. Archivado (PDF) del original el 11 de julio de 2018. Recuperado el 11 de julio de 2018 .
  3. Elam, David; Iovescu, Cesar (septiembre de 2003). "Implementación de punto flotante por bloques para una FFT de N puntos en el DSP TMS320C55x" (PDF) (Informe de aplicación). Aplicaciones de software TMS320C5000. Texas Instruments . SPRA948. Archivado (PDF) del original el 11 de julio de 2018. Recuperado el 1 de noviembre de 2015 .
  4. Wilkinson, James Hardy (1994) [1.ª ed. 1963]. Errores de redondeo en procesos algebraicos (1.ª ed.). Englewood Cliffs, NJ, EE. UU.: Prentice-Hall, Inc. ISBN  978-0-486-67999-0MR 0161456 . 
  5. ^ Müller, Jean-Michel; Brisebarre, Nicolás; de Dinechin, Florent; Jeannerod, Claude-Pierre; Lefèvre, Vicente; Melquiond, Guillaume; Revol, Nathalie ; Stehlé, Damián; Torres, Serge (2010). Manual de aritmética de coma flotante (1 ed.). Birkhäuser . doi : 10.1007/978-0-8176-4705-6 . ISBN  978-0-8176-4704-9. LCCN 2009939668 . 
  6. Overton, Michael L. (2001). Computación numérica con aritmética de punto flotante IEEE: incluye un teorema, una regla práctica y ciento un ejercicios (1.ª ed.). Sociedad de Matemáticas Industriales y Aplicadas (SIAM). ISBN  0-89871-482-6. 9-780898-714821-90000.
  7. Rouhani, Bita Darvish; Zhao, Ritchie; More, Ankit; Hall, Mathew; Khodamoradi, Alireza; Deng, Summer; Choudhary, Dhruv; Cornea, Marius; Dellinger, Eric (2023-10-19). "Microscaling Data Formats for Deep Learning". arXiv : 2310.10537 [ cs.LG ].
  8. D'Sa, Reynold; Borkar, Rani (17 de octubre de 2023). "Fomentando los avances en la infraestructura de IA a través de la estandarización" . Blog de Microsoft Azure . Recuperado el 3 de junio de 2024 .
  9. 1 2 "AMD, Arm, Intel, Meta, Microsoft, NVIDIA y Qualcomm estandarizan formatos de datos de precisión reducida de próxima generación para IA" . Open Compute Project . Consultado el 3 de junio de 2024 .
  10. 1 2 "Especificación de formatos de microescalado OCP (MX) Versión 1.0" . Open Compute Project . Archivado del original el 24 de febrero de 2024. Recuperado el 21 de febrero de 2025 .
  11. Rouhani, Bita; Zhao, Ritchie; Elango, Venmugil; Shafipour, Rasoul; Hall, Mathew; Mesmakhosroshahi, Maral; More, Ankit; Melnick, Levi; Golub, Maximilian (2023-04-12). "Con microexponentes compartidos, un pequeño desplazamiento da para mucho". arXiv : 2302.08007 [ cs.LG ].
  12. microsoft/microxcaling , Microsoft, 29/05/2024 , consultado el 03/06/2024
  13. 1 2 "Presentamos NVFP4 para una inferencia de baja precisión eficiente y precisa" . Blog técnico de NVIDIA . 24 de junio de 2025.
  14. Shilov, Anton (19 de septiembre de 2023). "D-Matrix's Jayhawk II aborda las cargas de trabajo de IA en el borde y en la nube" . EE Times .
  15. Trukhanov, Nikita; Soloveychik, Ilya (2024). "Cuantización precisa de bloques en LLMS con valores atípicos". arXiv : 2403.20137v1 [ cs.AI ].
  16. "Aceleradores de IA de Tenstorrent" (PDF) .
  17. "Formatos de datos y fidelidad matemática — Documentación de TT Buda" . docs.tenstorrent.com .
  18. Bonshor, Gavin. "AMD anuncia la serie Ryzen AI 300 para dispositivos móviles: Zen 5 con RDNA 3.5 y NPU XDNA2 con 50 TOPS" . www.anandtech.com . Archivado del original el 3 de junio de 2024. Consultado el 3 de junio de 2024 .
  19. "AMD amplía su liderazgo en IA y alto rendimiento en centros de datos y PC con los nuevos procesadores AMD Instinct, Ryzen y EPYC en Computex 2024" . Advanced Micro Devices, Inc. 2 de junio de 2024. Consultado el 3 de junio de 2024 .
  20. "Cuantización BFP16 (punto flotante por bloques) — Documentación de AMD Quark 0.10" . quark.docs.amd.com .
  21. "Especificación de la arquitectura de Intel Advanced Vector Extensions 10.2 (Intel AVX10.2)" . Intel . 16 de octubre de 2024. pág. 39. 361050-002US . Consultado el 27 de diciembre de 2024 . 
  22. ^ Hao, Zhiwei; Guo, Jianyuan; Shen, Li; Luo, Yong; Hu, Han; Wang, Guoxia; Yu, Dianhai; Wen, Yonggang; Tao, Dacheng (2025). "Entrenamiento de baja precisión de modelos de lenguaje grandes: métodos, desafíos y oportunidades". arXiv : 2505.01043v1 [ cs.LG ].
  23. "Estrategias de escalado por tensor y por bloque para un entrenamiento FP8 eficaz" . Blog técnico de NVIDIA . 1 de julio de 2025.
  24. Kim, Jiwoo; Lee, Joonhyung; Park, Gunho; Kim, Byeongwook; Se Jung Kwon; Lee, Dongsoo; Lee, Youngjoo (2025). "Una investigación de FP8 en diferentes aceleradores para la inferencia LLM". arXiv : 2502.01070v1 [ cs.LG ].
  25. "Formatos de cuantización de dos niveles (MX4, MX6, MX9: microexponentes compartidos) — Documentación de AMD Quark 0.10" . quark.docs.amd.com .
  26. "AMD Versal™ AI Edge Series Gen 2" .

Lecturas adicionales

  • "Escalado de punto flotante en bloques FFT/IFFT" (PDF) (Nota de aplicación). San José, CA, EE. UU.: Altera Corporation . Octubre de 2005. 404-1.0. Archivado (PDF) del original el 11 de julio de 2018. Recuperado el 11 de julio de 2018 .