Articulo de referencia

Unum (formato numérico)

Los unums ( números universales [ 1 ] ) son una familia de formatos numéricos y aritmética para implementar números reales en una computadora, propuesta por John L. Gustafson en...

Los unums ( números universales [ 1 ] ) son una familia de formatos numéricos y aritmética para implementar números reales en una computadora, propuesta por John L. Gustafson en 2015. [ 2 ] Están diseñados como una alternativa al omnipresente estándar de punto flotante IEEE 754. La versión más reciente se conoce como posits . [ 3 ]

Tipo I Unum

La primera versión de los unum, formalmente conocida como unum de tipo I, se introdujo en el libro de Gustafson, The End of Error, como un superconjunto del formato de punto flotante IEEE-754. [ 2 ] Las características que definen el formato unum de tipo I son:

  • un formato de almacenamiento de ancho variable tanto para la mantisa como para el exponente , y
  • un bit u , que determina si el unum corresponde a un número exacto ( u  =  0) o a un intervalo entre unums exactos consecutivos ( u  =  1). De esta forma, los unums cubren toda la recta numérica real extendida [−∞,+∞].

Para realizar cálculos con este formato, Gustafson propuso utilizar aritmética de intervalos con un par de unums, lo que él denominó un límite u , lo que garantiza que el intervalo resultante contiene la solución exacta.

William M. Kahan y Gustafson debatieron sobre los unums en la conferencia Arith23 . [ 4 ] [ 5 ] [ 6 ] [ 7 ]

Tipo II Unum

Los Unum de tipo II se introdujeron en 2016 [ 8 ] como un rediseño de los Unum que rompieron la compatibilidad con IEEE-754. Además del bit de signo y el bit de intervalo mencionados anteriormente, el Unum de tipo II utiliza un bit para indicar la inversión. Estas tres operaciones permiten, a partir de un conjunto finito de puntos entre uno e infinito, cuantificar toda la línea proyectiva excepto cuatro puntos: las dos excepciones, 0 e ∞, y luego 1 y −1. Este conjunto de puntos se elige arbitrariamente, y las operaciones aritméticas que los involucran no se realizan lógicamente, sino mediante una tabla de búsqueda. El tamaño de dicha tabla resulta prohibitivo para un formato de codificación que abarca varios bytes. Este desafío hizo necesaria la creación del Unum de tipo III, conocido como posit, que se analiza más adelante.

Posit (Tipo III Unum)

En febrero de 2017, Gustafson introdujo oficialmente los unums de tipo III (posits), para valores fijos similares a los de punto flotante y válidos para aritmética de intervalos . [ 3 ] En marzo de 2022, el Grupo de Trabajo de Posit ratificó y publicó un estándar. [ 9 ]

Los posits [ 3 ] [ 10 ] [ 11 ] son ​​una versión de unum compatible con hardware donde se resuelven las dificultades que presentaba el unum original de tipo I debido a su tamaño variable. En comparación con los floats IEEE 754 de tamaño similar, los posits ofrecen un mayor rango dinámico y más bits fraccionarios para valores con magnitud cercana a 1 (pero menos bits fraccionarios para valores muy grandes o muy pequeños), y Gustafson afirma que ofrecen una mayor precisión. [ 12 ] [ 13 ] Estudios [ 14 ] [ 15 ] confirman que, para algunas aplicaciones, los posits con quire superan a los floats en precisión. Los posits tienen una precisión superior en el rango cercano a uno, donde se realizan la mayoría de los cálculos. Esto los hace muy atractivos para la tendencia actual en aprendizaje profundo de minimizar el número de bits utilizados. Potencialmente, ayuda a acelerar cualquier aplicación al permitir el uso de menos bits (ya que tiene más bits fraccionarios para mayor precisión), reduciendo el ancho de banda de la red y la memoria , así como los requisitos de energía.

El formato de un posit de n bits se etiqueta con la palabra "posit" seguida de los dígitos decimales de n (por ejemplo, el formato de posit de 16 bits es "posit16") y consta de cuatro campos secuenciales:

  1. signo : 1 bit, que representa un entero sin signo s
  2. régimen: al menos 2 bits y hasta ( n  1), que representan un entero sin signo r como se describe a continuación
  3. exponente : generalmente 2 bits disponibles después del régimen, que representan un entero sin signo e
  4. fracción : todos los bits restantes disponibles después del exponente, que representan un racional diádico real no negativo f menor que 1

El campo de régimen utiliza codificación unaria de k bits idénticos, seguidos de un bit de valor opuesto si hay bits restantes disponibles, para representar un entero sin signo r que es − k si el primer bit es 0 o k  1 si el primer bit es 1. Los campos de signo, exponente y fracción son análogos a los campos de signo, exponente y mantisa de IEEE 754 (respectivamente), excepto que los campos de exponente y fracción positivos pueden estar ausentes o truncados y extendidos implícitamente con ceros: un exponente ausente se trata como 002 (que representa 0), un exponente de un bit E 1 se trata como 2 (que representa el entero 0 si E 1 es 0 o 2 si E 1 es 1), y una fracción ausente se trata como 0. Los números negativos ( s es 1) se codifican como complementos a dos.E10

Las dos codificaciones en las que todos los bits que no son de signo son 0 tienen interpretaciones especiales:

  • Si el bit de signo es 1, el valor positivo es NaR("no es real").
  • Si el bit de signo es 0, el valor positivo es 0 (que no tiene signo y es el único valor para el que la signfunción devuelve 0).

De lo contrario, el valor positivo es igual a((13s)+F)×2(12s)×(4r+mi+s){\textstyle ((1-3s)+f)\times 2^{(1-2s)\times (4r+e+s)}}, en la que r escala por potencias de 16, e escala por potencias de 2, f distribuye valores uniformemente entre combinaciones adyacentes de ( r , e ), y s ajusta el signo simétricamente alrededor de 0.

Ejemplos

Mano de papel

Para cada posición n tipo de precisiónnorte{\textstyle n}, el estándar define un tipo de "quire" correspondiente de precisión16×norte{\textstyle 16\times n}, utilizado para acumular sumas exactas de productos de esos posits sin redondeo ni desbordamiento en productos escalares para vectores de hasta 2 31 o más elementos (el límite exacto es223+4norte{\displaystyle 2^{23+4n}}). El formato del cuadernillo es un entero con signo en complemento a dos , interpretado como un múltiplo de unidades de magnitud.2168norte{\displaystyle 2^{16-8n}}excepto por el valor especial con un bit de signo principal de 1 y todos los demás bits iguales a 0 (que representa NaR). Los cuestionarios se basan en el trabajo de Ulrich W. Kulisch y Willard L. Miranker . [ 16 ]

Válido

Los valores válidos se describen como un modo Unum de tipo III que limita los resultados a un rango determinado. [ 3 ]

Crítica

William M. Kahan, el principal arquitecto de IEEE 754-1985 , critica los unums de tipo I por los siguientes motivos (algunos se abordan en los estándares de tipo II y tipo III): [ 6 ] [ 17 ]

  • La descripción de los elusiones de Unums utiliza el cálculo para resolver problemas de física.
  • Los Unums pueden resultar costosos en términos de tiempo y consumo de energía.
  • Es probable que cada cálculo en el espacio unum cambie la longitud en bits de la estructura. Esto requiere desempaquetarlos en un espacio de tamaño fijo, o bien asignar, liberar y recolectar datos durante las operaciones unum, de forma similar a los problemas que surgen al trabajar con registros de longitud variable en el almacenamiento masivo.
  • Los Unums solo proporcionan dos tipos de excepción numérica: silenciosa y de señalización NaN (no es un número).
  • El cálculo de Unum puede arrojar límites demasiado imprecisos debido a la selección de un algoritmo algebraicamente correcto pero numéricamente inestable.
  • Las ventajas de unum sobre el punto flotante de precisión corta para problemas que requieren baja precisión no son obvias.
  • Resolver ecuaciones diferenciales y evaluar integrales con unums garantiza respuestas correctas, pero puede que no sea tan rápido como los métodos que suelen funcionar.

Véase también

Referencias

  1. Tichy, Walter F. (abril de 2016). "El fin del error (numérico): una entrevista con John L. Gustafson" . Ubiquity . 2016 (abril). Association for Computing Machinery (ACM): 1–14 . doi : 10.1145/2913029 . JG: La palabra "unum" es la abreviatura de "número universal", del mismo modo que la palabra "bit" es la abreviatura de "dígito binario".
  2. 1 2 Gustafson, John L. (2016-02-04) [2015-02-05]. El fin del error: Computación Unum . Chapman & Hall / CRC Computational Science . Vol. 24 (2.ª reimpresión corregida, 1.ª ed.). CRC Press . ISBN   978-1-4822-3986-7. Consultado el 30 de mayo de 2016 .
  3. 1 2 3 4 Gustafson, John Leroy ; Yonemoto, Isaac (2017). "Vencer a Floating Point en su propio juego: Posit Arithmetic" . Supercomputing Frontiers and Innovations . 4 (2). Centro Editorial de la Universidad Estatal del Sur de los Urales, Chelyabinsk, Rusia. doi : 10.14529/jsfi170206 . Archivado del original el 4 de noviembre de 2017. Recuperado el 4 de noviembre de 2017 .
  4. "Programa: Sesión especial: El gran debate: John Gustafson y William Kahan" . Arith23 : 23.º Simposio IEEE sobre aritmética computacional . Silicon Valley, EE. UU. 12 de julio de 2016. Archivado del original el 30 de mayo de 2016. Consultado el 30 de mayo de 2016 .
  5. Gustafson, John L. ; Kahan, William M. (12 de julio de 2016). El gran debate @ARITH23: John Gustafson y William Kahan (1:34:41) (vídeo) . Recuperado el 20 de julio de 2016 .
  6. 1 2 Kahan, William M. (16-07-2016) [12-07-2016]. "Una crítica de EL FIN DEL ERROR: Computación Unum de John L. Gustafson y su Enfoque Radical para la Computación con Números Reales " (PDF) . Santa Clara, CA, EE. UU.: Simposio IEEE sobre Aritmética Computacional , ARITH 23. Archivado ( PDF) del original el 25-07-2016 . Recuperado el 25-07-2016 .
  7. ^ Gustafson, John L. (12 de julio de 2016). ""El Gran Debate": Documento de posición de Unum sobre aritmética (PDF) . Santa Clara, CA, EE. UU.: Simposio IEEE sobre Aritmética Computacional , ARITH 23. Consultado el 20 de julio de 2016 .
  8. Tichy, Walter F. (septiembre de 2016). "Unums 2.0: una entrevista con John L. Gustafson" . Ubiquity.ACM.org . Recuperado el 30 de enero de 2017. Empecé llamándolos "unums 2.0", que parecía un nombre tan bueno como cualquier otro para el concepto, pero en realidad no es tanto una "última versión" como una alternativa.
  9. 1 2 Grupo de trabajo de Posit (2022-03-02). "Estándar para la aritmética de Posit (2022)" (PDF) . Archivado (PDF) del original el 26-09-2022 . Recuperado el 21-12-2022 .
  10. John L. Gustafson e I. Yonemoto. (Febrero de 2017) Más allá de la coma flotante: Aritmética informática de próxima generación. [En línea]. Disponible en: https://www.youtube.com/watch?v=aP0Y1uAA-2Y
  11. Gustafson, John Leroy (10 de octubre de 2017). "Aritmética positiva" (PDF) . Archivado (PDF) del original el 5 de noviembre de 2017. Recuperado el 4 de noviembre de 2017 .
  12. Feldman, Michael (2019-07-08). "Un nuevo enfoque podría hundir la computación de punto flotante" . www.nextplatform.com . Consultado el 2019-07-09 .
  13. Byrne, Michael (24 de abril de 2016). "Un nuevo formato numérico para computadoras podría eliminar definitivamente los errores de aproximación" . Vice . Consultado el 9 de julio de 2019 .
  14. Lindstrom, Peter; Lloyd, Scott; Hittinger, Jeffrey (marzo de 2018). Codificación universal de los números reales: alternativas al punto flotante IEEE . Conferencia sobre aritmética de próxima generación. Art. 5. ACM. doi : 10.1145/3190339.3190344 . 
  15. David Mallasén; Alberto A. Del Barrio; Manuel Prieto-Matias (2024). "Big-PERCIVAL: Explorando el uso nativo de la aritmética positiva de 64 bits en la computación científica". IEEE Transactions on Computers . 73 (6): 1472– 1485. arXiv : 2305.06946 . doi : 10.1109/TC.2024.3377890 .
  16. Kulisch, Ulrich W. ; Miranker, Willard L. (marzo de 1986). "La aritmética de la computadora digital: un nuevo enfoque". SIAM Rev. 28 (1). SIAM : 1– 40. doi : 10.1137/1028001 .
  17. Kahan, William M. (15 de julio de 2016). "Comentario del Prof. W. Kahan sobre "EL FIN DEL ERROR: Computación Unum" de John L. Gustafson, (2015) CRC Press" (PDF) . Archivado (PDF) del original el 1 de agosto de 2016. Recuperado el 1 de agosto de 2016 .

Lecturas adicionales

  • Gustafson, John L. (marzo de 2013). "Optimización de la precisión: Computación sin límites: La necesidad de optimizar la precisión para ahorrar energía, ancho de banda, almacenamiento y energía eléctrica" ​​(PDF) . Archivado (PDF) del original el 6 de junio de 2016. Consultado el 6 de junio de 2016 .
  • Brueckner, Rich (2 de marzo de 2015). "Presentación: John Gustafson explica la computación Unum de bajo consumo energético" . The Rich Report . Inside HPC. Archivado del original el 10 de julio de 2016. Recuperado el 10 de junio de 2016 .
  • Gustafson, John L. (2015). "El fin del error numérico" (PDF) . Archivado (PDF) del original el 6 de junio de 2016. Recuperado el 6 de junio de 2016 .
  • Gustafson, John L. (03-06-2016) [22-02-2016]. "Un enfoque radical para el cálculo con números reales: Unums versión 2.0" (PPT). Archivado del original el 10-07-2016 . Recuperado el 10-07-2016 .(Nota: Los archivos PDF no incluyen notas.))
  • Gustafson, John L. (6 de junio de 2016). "Un enfoque de eficiencia energética y procesamiento masivamente paralelo para cálculos numéricos válidos" (PPT). Seminario OCRAR. Archivado del original el 10 de julio de 2016. Recuperado el 10 de julio de 2016 .
  • Gustafson, John L. (2016). "Un enfoque radical para el cálculo con números reales" (PDF) . SuperFri.org. Archivado (PDF) del original el 10 de julio de 2016. Recuperado el 10 de julio de 2016 .
  • Kulisch, Ulrich W. (2015). "Aritmética de intervalos actualizada: de intervalos cerrados a conjuntos conexos de números reales" (PDF) (preimpresión). Institut für Angewandte und Numerische Mathematik – Karlsruhe Institute of Technology (KIT), Alemania. ID 15/02. Archivado (PDF) del original el 12 de julio de 2016. Consultado el 12 de julio de 2016 .
  • Risse, Thomas (10 de marzo de 2016). "Unum: una extensión práctica de IEEE 754" (PDF) (presentación). London South Bank University (LSBU), Reino Unido: Instituto de Informática y Automatización (IIA), Facultad de Ingeniería Eléctrica y Electrónica e Informática, Universidad de Ciencias Aplicadas de Bremen , Alemania. Archivado (PDF) del original el 12 de julio de 2016. Recuperado el 12 de julio de 2016 .
  • Kahan, William M. (15 de julio de 2016). "Comentarios del Prof. W. Kahan sobre la aritmética SORN" (PDF) . Archivado (PDF) del original el 1 de agosto de 2016. Recuperado el 1 de agosto de 2016 .
  • Hunhold, Laslo (2016-11-08). El formato de número Unum: fundamentos matemáticos, implementación y comparación con los números de punto flotante IEEE 754 (PDF) (tesis de licenciatura). Universität zu Köln , Mathematisches Institut. arXiv : 1701.00722v1 . Archivado (PDF) del original el 2017-01-07 . Recuperado el 2016-10-23 .
  • Sterbenz, Pat H. (1974-05-01). Floating-Point Computation . Prentice-Hall Series in Automatic Computation (1.ª  ed.). Englewood Cliffs, Nueva Jersey, EE. UU.: Prentice Hall . ISBN 0-13-322495-3.
  • Cave, Skip (17 de agosto de 2016). "Implementación en lenguaje de programación J de unums de precisión de 3, 4, 8 y 16 bits" . Recuperado el 3 de mayo de 2017 .(Enlace de descarga de Roger Stokes:)
  • Ingole, Deepak (28 de septiembre de 2017). Implementación integrada de control predictivo explícito basado en modelos (tesis doctoral). Universidad Tecnológica Eslovaca de Bratislava , Eslovaquia.
  • "Conferencia para la Aritmética de Próxima Generación (CoNGA)" . 2017. Archivado del original el 4 de noviembre de 2017. Consultado el 4 de noviembre de 2017 .
  • "SoftPosit" . 2018. Consultado el 13 de junio de 2018 .
  • "Contribución de código fuente de la comunidad" . 2018. Consultado el 13 de junio de 2018 .
  • "Anatomía de un número positivo" . 11 de abril de 2018. Consultado el 9 de agosto de 2019 .