¿Las GPU disponibles actualmente admiten aritmética de coma flotante de doble precisión?

17

He ejecutar el código de dinámica molecular (MD) GROMACS en un clúster Linux Ubuntu que consta de nodos que contienen 24 CPUs Intel Xeon. Mi punto de interés particular resulta ser algo sensible a la precisión aritmética de coma flotante, por lo que he tenido que ejecutar GROMACS con doble precisión en lugar de una sola precisión, a pesar del mayor costo computacional de la doble precisión. Entonces, en el clúster, he compilado GROMACS en doble precisión.

Estoy considerando la compra de algunas GPU, ya que puede haber una relación de aceleración ( "aceleración de la GPU") a las CPU. Sin embargo, necesito una GPU que me permita hacer aritmética de doble precisión. ¿Sabe si dicho hardware está disponible comercialmente? Una publicación reciente en la lista de correo GROMACS sugiere que las GPU de doble precisión no están disponibles comercialmente:

El hardware no lo admite [aritmética de doble precisión] todavía AFAIK.

Esta página de Wikipedia parece sugerir que las GPU de doble precisión son poco comunes ya que pueden ser ineficientes:

Las implementaciones de punto flotante en las GPU Nvidia son en su mayoría compatibles con IEEE; Sin embargo, esto no es cierto en todos los proveedores. Esto tiene implicaciones para la corrección que se consideran importantes para algunas aplicaciones científicas. Si bien los valores de coma flotante de 64 bits (flotante de doble precisión) están comúnmente disponibles en las CPU, estos no son compatibles universalmente en las GPU; algunas arquitecturas GPU sacrifican IEEE cumplimiento mientras que otros carecen por completo de doble precisión. Se han hecho esfuerzos para emular de doble precisión los valores de punto flotante en la GPU; sin embargo, la compensación de velocidad niega cualquier beneficio de descargar el cálculo en la GPU en primer lugar.

Esta página de NVIDIA Tesla , al hacer referencia al "rendimiento de punto flotante de precisión doble de pico" en el gráfico, parece sugerir que los cálculos de precisión doble pueden , de hecho, hacerse en sus GPU (aunque a un costo computacional más alto).

Entonces, ¿qué debo creer? ¿Tienes alguna experiencia con este problema?

Andrés
fuente
echa un vistazo al gtx titan, está basado en gk110 y tiene soporte de doble precio ... aunque es un poco costoso ... alrededor de $ 1k
Wikipedia no siempre tiene información actual sobre temas que cambian rápidamente ...
Jeff

Respuestas:

17

La precisión doble es bastante común en las GPU más nuevas. Por ejemplo, tengo un NVIDIA GTX560 Ti (bastante bajo en lo que respecta a la informática) que no tiene problemas para ejecutar ViennaCL con doble precisión. A partir de aquí (sección 4) , parece que todas las tarjetas NVIDIA de GTX4xx en adelante admiten doble precisión de forma nativa.

Supongo que la información GROMACS simplemente está desactualizada.

Vidente de Godric
fuente
55
Muy anticuado. Los procesadores NVIDIA en particular han tenido soporte de doble precisión durante años. Francamente, era significativamente más lento que la capacidad de precisión simple, pero estaba allí (y no solo emulado) en las primeras GPU de la marca Tesla, y probablemente antes de eso. Las encarnaciones más recientes han reducido considerablemente la brecha entre la señal y el soporte de doble precisión.
Michael Grant
Sí, el documento que vinculé mencionó cifras de aproximadamente un factor de diferencia de 8 en el rendimiento cuando se necesitaba la emulación, pero ahora que los chips están diseñados para ello, está más cerca de un factor de 2. Diría que esto probablemente se deba a latencia de memoria de la tarjeta de VRAM a los procesadores, pero eso es simplemente una suposición de mi parte.
Godric vidente
En realidad, la razón principal fue que las GPU anteriores simplemente no dedicaban mucho espacio en el chip a la computación de doble precisión. Según esta página , la serie GK110 tiene 8 veces más unidades de doble precisión por "bloque SMX" (lo que sea que eso signifique) que la serie GK104.
Michael Grant
1
Ah, sí, en realidad estaba refiriendo a la diferencia 2x de GPUs actuales en lo que respecta al comentario de ancho de banda de memoria.
Godric vidente
Gotcha No me refiero a ir por este agujero del conejo. Tu respuesta está bien, por eso te comenté y te voté en lugar de agregar mi propia respuesta ;-)
Michael Grant
8

Cada GPU con SM 1.3 (Tesla / GTX2xx) o superior tiene soporte de hardware de doble precisión. Comenzando con la arquitectura Fermi, las variantes Quadro y Tesla tienen un mejor soporte de doble precisión que los modelos Ge Force de consumo.

Lo raro es que / GTX6xx soporte de doble precisión Ge Fuerza Kepler es inferior a la ayuda de Fermi GeForce / GTX5xx para mejorar la diferenciación Tesla en Kepler K20 / K20x. Para agravar la rareza, Tesla K10S tienen el apoyo de doble precisión Ge Force-nivel. Y más recientemente, esto quedó en un completo alboroto por la introducción de la Ge Fuerza GTX Titán, que tiene pleno apoyo de doble precisión y muchos CUDA cuenta sólo está presente en los modelos Tesla hasta ahora. Un GTX Titan cuesta ~ $ 1,000, una oferta de gritos IMO.


fuente
0

De acuerdo con esta discusión , Tesla y Titan GPU son más la adecuada (de la Nvidia GPU) para precisión doble.

Mirando por ejemplo a una lista de GPUs de Nvidia en la Wikipedia (una tabla similar para AMD GPU es aquí ) y comparar la potencia de procesamiento simple y doble precisión (en términos de GFLOPs) se ve que el rendimiento de doble precisión es mucho menor que la mitad de la precisión simple rendimiento para la mayoría de los otros GPU. Por ejemplo para la serie GTX 900, el artículo menciona que el rendimiento de doble precisión es 1/32 de la actuación de precisión simple, mientras que este artículo de Wikipedia dice que para la serie GTX 700, el rendimiento de doble precisión es 1/24 de la precisión simple rendimiento (a excepción de Titán, donde puede ser tan alto como 1/3 de la actuación de precisión simple).

Andre Holzner
fuente