Introducción

Saber qué formato de precisión se debe usar para un cálculo es fundamental, pero a veces puede parecer un acto de malabarismo: La precisión de la informática de precisión doble parece competir con el valor de rendimiento de su homóloga de precisión simple. Ambas garantizan la precisión y superan las limitaciones de los valores numéricos, pero cada técnica ofrece un propósito y un costo operativo únicos.

A continuación, analizaremos en detalle cada formato, en qué se diferencian y cómo la combinación de distintos niveles de precisión puede ayudarte a mantener la eficiencia sin renunciar a la precisión.

El papel de la precisión en la informática

Para entender la diferencia entre la informática de precisión simple y doble, es importante comprender el papel de la precisión en la informática. Imagina que haces un cálculo con un número irracional (como pi) e incluyes solo dos dígitos a la derecha de la coma decimal (3,14). Obtendrías un resultado más preciso si hicieras el cálculo con diez dígitos a la derecha de la coma decimal (3,1415926535).

En informática, este nivel de exactitud se denomina precisión y se mide en dígitos binarios (bits) en lugar de decimales. Cuantos más bits se usen, mayor será la precisión.

Man on computer in a dim room with a city view.

Representación estándar IEEE de números en punto flotante

La representación de números grandes en binario informático requiere un estándar que garantice que no haya grandes discrepancias en los cálculos. Por eso, el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) desarrolló el Estándar IEEE para la Aritmética en Punto Flotante (IEEE 754)

Hay tres componentes del IEEE 754:

  1. La base: 0 representa un número positivo; 1 representa un número negativo. 
  2. El exponente sesgado: el exponente se utiliza para representar exponentes positivos y negativos. Por lo tanto, se debe agregar un sesgo al exponente real para obtener el exponente almacenado. 
  3. La mantisa: también conocida como significando, la mantisa representa los bits de precisión del número.

Con estos componentes, el IEEE 754 representa los números de punto flotante de dos formas: formato de precisión simple y formato de precisión doble. Aunque todavía hay una gran variedad de formas de representar números de punto flotante, el IEEE 754 es el más común porque generalmente es la representación más eficiente de los valores numéricos. 

Blue abstract data dots

Representación estándar IEEE de números en punto flotante

La representación de números grandes en binario informático requiere un estándar que garantice que no haya grandes discrepancias en los cálculos. Por eso, el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) desarrolló el Estándar IEEE para la Aritmética en Punto Flotante (IEEE 754)

Hay tres componentes del IEEE 754:

  1. La base: 0 representa un número positivo; 1 representa un número negativo. 
  2. El exponente sesgado: el exponente se utiliza para representar exponentes positivos y negativos. Por lo tanto, se debe agregar un sesgo al exponente real para obtener el exponente almacenado. 
  3. La mantisa: también conocida como significando, la mantisa representa los bits de precisión del número.

Con estos componentes, el IEEE 754 representa los números de punto flotante de dos formas: formato de precisión simple y formato de precisión doble. Aunque todavía hay una gran variedad de formas de representar números de punto flotante, el IEEE 754 es el más común porque generalmente es la representación más eficiente de los valores numéricos. 

¿Qué es el formato de punto flotante de precisión simple?

El formato de punto flotante de precisión simple utiliza 32 bits de memoria computacional y puede representar una amplia gama de valores numéricos. A menudo conocido como FP32, este formato se utiliza mejor para cálculos que no se verán afectados por un poco de aproximación.

¿Qué es el formato de punto flotante de precisión doble?

El formato de punto flotante de precisión doble, por otro lado, ocupa 64 bits de la memoria computacional y es mucho más preciso que el formato de precisión simple. Este formato suele denominarse FP64 y se utiliza para representar valores que requieren un rango mayor o un cálculo más preciso.

Aunque la precisión doble permite una mayor exactitud, también requiere más recursos computacionales, almacenamiento en memoria y transferencia de datos. El costo de usar este formato no siempre tiene sentido para todos los cálculos.

Diferencia entre precisión simple y doble

La forma más sencilla de distinguir entre la informática de precisión simple y la de precisión doble es observar cuántos bits representan el número en punto flotante. En la precisión simple, se utilizan 32 bits para representar el número en punto flotante. En el caso de la precisión doble, se utilizan 64 bits para representar el número en punto flotante. 

Tomemos como ejemplo el número de Euler (e). Estos son los primeros 50 dígitos decimales de e: 2.7182818284590452353602874713526624977572470936999.

Este es el número de Euler en binario, convertido en precisión simple:  
01000000001011011111100001010100

Este es el número de Euler en binario, convertido en precisión doble: 
010000000000010110111111 0000101010001011000101000101011101101001

El primer número representa la base. El siguiente conjunto de números (ocho para la precisión simple y once para la precisión doble) representa el exponente sesgado. El último conjunto de números (23 para la precisión simple y 52 para la precisión doble) representa la mantisa.

Cuadro comparativo: Precisión simple frente a precisión doble

 

Precisión simple

Precisión doble

Descripción general

Utiliza 32 bits de memoria para representar un valor numérico, con uno de los bits representando el signo de la mantisa

Utiliza 64 bits de memoria para representar un valor numérico, con uno de los bits representando el signo de la mantisa

 

Exponente sesgado

 

8 bits utilizados para el exponente

 

11 bits utilizados para el exponente

 

Mantisa

 

Utiliza 23 bits para la mantisa (para representar la parte fraccionaria)

 

Utiliza 52 bits para la mantisa (para representar la parte fraccionaria)

 

Aplicación real

A menudo se utiliza para juegos o cualquier programa que requiera una representación más amplia sin un alto nivel de precisión

A menudo se utiliza para cálculos científicos y programas complejos que requieren un alto nivel de precisión

Informática de precisión múltiple o mixta

Además de la informática de precisión simple y doble, que se considera de precisión múltiple, también existe la informática de precisión mixta.

La informática de precisión mixta, a veces denominada de transprecisión, se utiliza habitualmente en el campo del aprendizaje automático. Los cálculos se realizan comenzando con valores de media precisión (16 bits) para una matemática matricial rápida. Después, a medida que se procesan los números, la máquina los almacena con una precisión mayor. 

La ventaja de la informática de precisión mixta es que ofrece respuestas acumuladas que son similares en precisión a las que se ejecutan en informática de precisión doble, sin requerir el mismo nivel de potencia, tiempo de ejecución y memoria.

Blue abstract computer chip layout

Beneficios de combinar distintos niveles de precisión

Las diferentes cargas de trabajo requieren niveles de precisión, ya que la ejecución de cálculos no es una práctica universal. Los informáticos necesitan diversos formatos de computación en función de los recursos disponibles, el presupuesto, el almacenamiento y otras variables. 

Por ejemplo, como es increíblemente precisa, la precisión doble puede ser la mejor para la investigación de grandes conjuntos de datos o la modelización meteorológica. Pero el almacenamiento y los recursos necesarios para esos cálculos no siempre justifican su uso. Los desarrolladores pueden optimizar la eficiencia y el gasto computacional mezclando distintos niveles de precisión, según sea necesario. 

Optimización de la eficiencia computacional

Aunque la precisión en la informática es ciertamente esencial, es importante entender cómo puedes beneficiarte del uso de una variedad de niveles de precisión. Para garantizar la eficiencia operativa sin renunciar a cálculos precisos, se necesitan capacidades flexibles compatibles con diferentes formatos de punto flotante.

AMD Vivado™ Design Suite

AMD Vivado™ ML y System Generator for DSP, de AMD, ofrecen herramientas potentes compatibles con varias precisiones de punto flotante, ya sean de precisión múltiple o mixta. Este conjunto de herramientas líder del sector también proporciona la flexibilidad de precisión personalizada necesaria para acelerar el diseño, aumentar la productividad y permitir un uso eficiente de los recursos. Obtén más información sobre cómo AMD Vivado puede aumentar tu eficiencia computacional.

Siempre conectado

Regístrate en el newsletter para recibir las últimas actualizaciones sobre centros de datos o comunícate con un representante de ventas de AMD.