Articulo de referencia

Bloque de punto flotante

El bloque de coma flotante ( BFP ) es un método utilizado para proporcionar una aritmética que se aproxima al punto flotante mientras se utiliza un procesador de punto fijo . BF...

El bloque de coma flotante ( BFP ) es un método utilizado para proporcionar una aritmética que se aproxima al punto flotante mientras se utiliza 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 que a cada mantisa se le asigne su propio exponente. BFP puede ser ventajoso para limitar el uso de espacio en el hardware para realizar las mismas funciones que los algoritmos de punto flotante, reutilizando el exponente; algunas operaciones sobre múltiples valores entre bloques también se pueden realizar con una cantidad reducida de cálculo. [1]

El exponente común se obtiene a partir de los datos con la mayor amplitud en el bloque. Para encontrar el valor del exponente, se debe encontrar el número de ceros iniciales ( contar ceros iniciales ). Para ello, se debe normalizar el número de desplazamientos a la izquierda necesarios para los datos al rango dinámico del procesador utilizado. Algunos procesadores tienen medios para averiguarlo por sí mismos, como las instrucciones de detección y normalización de exponentes. [2] [3]

Los algoritmos de punto flotante en bloque fueron estudiados ampliamente por James Hardy Wilkinson . [4] [5] [6]

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

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 inteligencia artificial y aprendizaje automático. El formato MX, avalado y estandarizado por los principales 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 limitada para inteligencia artificial. [7] [8] [9]

El formato MX utiliza un único factor de escala compartido (exponente) para un bloque de elementos, lo que reduce significativamente el uso de memoria y los recursos computacionales necesarios para las operaciones de IA. Cada bloque de k elementos comparte este factor de escala común, que se almacena por separado de los elementos individuales.

La especificación MX inicial introduce varios formatos específicos, entre ellos MXFP8, MXFP6, MXFP4 y MXINT8. Estos formatos admiten varios niveles de precisión:

  • MXFP8: punto flotante de 8 bits con dos variantes (E5M2 y E4M3).
  • MXFP6: punto flotante de 6 bits con dos variantes (E3M2 y E2M3).
  • MXFP4: punto flotante de 4 bits (E2M1).
  • MXINT8: entero de 8 bits.

Se ha demostrado que los formatos MX son eficaces en una variedad de 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. [10] Por ejemplo, MXFP6 coincide estrechamente con FP32 para tareas de inferencia después de un ajuste fino consciente de la cuantificación, y MXFP4 se puede utilizar para entrenar modelos de lenguaje generativos con solo una pequeña penalización de precisión.

El formato MX ha sido estandarizado a través del Proyecto Open Compute (OCP) como Especificación de Formatos de Microescalado (MX) v1.0. [7] También se han publicado bibliotecas de emulación para proporcionar detalles sobre el enfoque de la ciencia de datos y seleccionar resultados de MX en acción. [11]

Soporte de hardware

El siguiente hardware admite operaciones BFP:

  • Matriz d Jayhawk II [12] [13]
  • Tenstorrent Grayskull e75 y e150 (BFP8, BFP4 y BFP2) [14]
  • Agujero de gusano Tenstorrent n150 y n300 (BFP8, BFP4 y BFP2) [14]
  • La APU AMD Strix Point (con la marca Ryzen AI serie 300) admite el bloque FP16 en NPU [15] [16]
  • AMD Versal AI Edge Series Gen 2 admite los tipos de datos MX6 y MX9

Véase también

Referencias

  1. ^ "Bloque de coma flotante". Diccionario BDTI DSP . Berkeley Design Technology, Inc. (BDTI). Archivado desde el original el 2018-07-11 . Consultado el 2015-11-01 .
  2. ^ Chhabra, Arun; Iyer, Ramesh (diciembre de 1999). "TMS320C55x A Block Floating Point Implementation on the TMS320C54x DSP" (PDF) (Informe de aplicación). Soluciones de procesamiento de señales digitales. Texas Instruments . SPRA610. Archivado (PDF) desde el original el 2018-07-11 . Consultado el 2018-07-11 .
  3. ^ Elam, David; Iovescu, Cesar (septiembre de 2003). "A Block Floating Point Implementation for an N-Point FFT on the TMS320C55x DSP" (PDF) (Informe de aplicación). Aplicaciones de software TMS320C5000. Texas Instruments . SPRA948. Archivado (PDF) desde el original el 2018-07-11 . Consultado el 2015-11-01 .
  4. ^ Wilkinson, James Hardy (1963). Errores de redondeo en procesos algebraicos (1.ª ed.). Englewood Cliffs, NJ, EE. UU.: Prentice-Hall, Inc. ISBN  978-0-486-67999-0.Sr. 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. Número de serie LCCN  2009939668.
  6. ^ Overton, Michael L. (2001). Cálculo numérico con aritmética de punto flotante IEEE: incluye un teorema, una regla empírica y ciento un ejercicios (1.ª ed.). Sociedad de Matemáticas Industriales y Aplicadas (SIAM). ISBN 0-89871-482-6. 9-780898-714821-90000.
  7. ^ ab "Open Compute Project". Proyecto Open Compute . Consultado el 3 de junio de 2024 .
  8. ^ Rouhani, Bita Darvish; Zhao, Ritchie; More, Ankit; Hall, Mathew; Khodamoradi, Alireza; Deng, Summer; Choudhary, Dhruv; Cornea, Marius; Dellinger, Eric (19 de octubre de 2023). "Microescalado de formatos de datos para aprendizaje profundo". arXiv : 2310.10537 [cs.LG].
  9. ^ D'Sa, Rani Borkar, Reynold (17 de octubre de 2023). "Fomento de los avances en la infraestructura de IA mediante la estandarización". Blog de Microsoft Azure . Consultado el 3 de junio de 2024 .{{cite web}}: CS1 maint: varios nombres: lista de autores ( enlace )
  10. ^ Rouhani, Bita; Zhao, Ritchie; Elango, Venmugil; Shafipour, Rasoul; Hall, Mathew; Mesmakhosroshahi, Maral; More, Ankit; Melnick, Levi; Golub, Maximilian (12 de abril de 2023). "Con microexponentes compartidos, un pequeño cambio puede ser de gran ayuda". arXiv : 2302.08007 [cs.LG].
  11. ^ microsoft/microxcaling, Microsoft, 29 de mayo de 2024 , consultado el 3 de junio de 2024
  12. ^ Clarke, Peter (28 de agosto de 2023). "La plataforma de inteligencia artificial generativa basada en chiplets aumenta el rendimiento de LLM". eeNews Europe . Consultado el 23 de abril de 2024 .
  13. ^ [SPCL_Bcast] Una arquitectura de inferencia generativa basada en chiplets con tipos de datos de punto flotante en bloque . Consultado el 23 de abril de 2024 a través de www.youtube.com.
  14. ^ ab "Aceleradores de IA de Tenstorrent" (PDF) .
  15. ^ 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 . Consultado el 3 de junio de 2024 .
  16. ^ "AMD amplía su liderazgo en inteligencia artificial 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 .

Lectura adicional

  • "Escalamiento de punto flotante en bloque FFT/IFFT" (PDF) (Nota de aplicación). San José, CA, EE. UU.: Altera Corporation . Octubre de 2005. 404-1.0. Archivado (PDF) desde el original el 2018-07-11 . Consultado el 2018-07-11 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Punto_flotante_del_bloque&oldid=1228077299"