2012-08-24 8 views
6

Un ingeniero eléctrico me advirtió recientemente contra el uso de GPU para computación científica (por ejemplo, donde la precisión realmente importa) sobre la base de que no hay garantías de hardware como las que hay en una CPU. ¿Es esto cierto y, de ser así, qué tan común/sustancial es el problema en un hardware típico?Precisión de GPU para computación científica

+0

sí ... eso es correcto ... todas esas torres de ordenadores construidos con enormes Las GPU son totalmente inútiles y esencialmente solo generadores de números aleatorios. Todo el hardware está sujeto a errores aleatorios: un solo fotón de alta energía emitido por un evento de desintegración radiactiva en un paquete de cerámica puede voltear bits en algún lugar dentro de la CPU y matar totalmente al sistema ... o puede que no. –

+0

@MarcB ¡No soy un teórico de la conspiración! Ver los enlaces en mi respuesta a continuación para una ilustración de problemas pasados. Básicamente quiero saber si estos han sido arreglados adecuadamente en hardware más reciente. –

Respuesta

9

En realidad, las GPU modernas se adaptan muy bien a la informática científica y muchas aplicaciones HPC se están portando al menos parcialmente para ejecutarse en GPU, por razones de rendimiento y eficiencia energética. A diferencia de las GPU anteriores, las modernas (toman las arquitecturas Fermi o Kepler de NVIDIA, por ejemplo) proporcionan formatos IEEE-754 completamente estandarizados, para precisión simple y doble, por lo que debería poder usarlos tal como lo hace en una CPU moderna .

3

Encontré algunos (más antiguos) documentos sobre esto, pero parece que el problema se ha solucionado en las tarjetas con capacidad de cómputo> = 2.0.

GPU actuales no son compatibles con el cálculo de doble precisión y su apoyo de precisión simple pasa por alto aspectos importantes de la norma de punto flotante IEEE-754 [1], tales como resultados correctamente redondeados y cierre apropiado del sistema numérico. ... Nuestros resultados muestran que hay errores graves con los resultados de las GPU en ciertos casos de borde, además del manejo incorrecto de números desnormalizados.

  • Karl E. Hillesland y Anselmo Lastra, "GPU de coma flotante paranoia." En Proc. GP2, agosto de 2004.

  • GPUBench Test: Precision.

  • Guillaume Da Graca y David Defour, "Aplicación de los operadores de flotación del flotador en los gráficos de hardware." En Proc. 7ª conferencia sobre los números reales y equipos, de julio de 2006.

  • Wikipedia's CUDA limitations section

doble precisión (CUDA capacidad de cómputo 1.3 y superior) [14] se desvían de la norma IEEE 754: de ida y de -fuera-incluso-es el único modo de redondeo compatible con para recíproco, división y raíz cuadrada. En precisión simple, los denormales y los NaN de señalización no son compatibles; solo se admiten dos modos de redondeo IEEE (cortar y redondear a la más cercana par), y esos se especifican por instrucción en lugar de en una palabra de control; y la precisión de la división/raíz cuadrada es ligeramente inferior a la precisión simple.

1

cálculo realidad más científica en general, no tiene por qué ser exacta, debido a errores de medición y en gran medida tales abruma los errores introducidos por el redondeo de punto flotante (excepto, tal vez en casos degenerados, como la suma de una serie de flotadores en orden vs en orden inverso, pero obtendrá ese tipo de problemas incluso en la CPU y nada le advertirá también, ya que está funcionando tal como se diseñó).En informática científica, generalmente es suficiente mostrar el resultado dentro de un cierto margen de errores y mostrar que el margen no causará problemas prácticos.

El punto flotante está diseñado para ser rápido, no necesariamente preciso en cuanto a las cifras, incluso en una CPU, por eso nos enseñaron siempre a comparar el punto flotante con un épsilon.

OTOH, los cálculos que realmente necesitan reglas precisas de redondeo hasta los últimos dígitos, como contabilidad o teoría de números, deben considerar el uso de aritmética de punto fijo (por ejemplo, módulo decimal) que le permite especificar exactamente las reglas de redondeo.

Cuestiones relacionadas