2010-05-12 15 views

Respuesta

11

Si su GPU tiene compute capability 1.3, puede hacer doble precisión. Sin embargo, debe tener en cuenta que el hardware 1.3 solo tiene una unidad FP de precisión doble por MP, que debe ser compartida por todos los hilos en ese MP, mientras que hay 8 FPU de precisión única, por lo que cada subproceso activo tiene su propia FPU de precisión. En otras palabras, es posible que vea 8 veces peor rendimiento con doble precisión que con precisión simple.

+1

Gracias por el consejo Paul. Quería cambiar a precisión "doble" mayormente para precisión. Estoy asesorando en un proyecto paralelo en el que estoy convirtiendo el código Python en C++/CUDA y el código Python usa precisión 'doble' en todas partes. Noté que cuando cambié a usar 'float' tenía una diferencia absoluta máxima de' 1e-06' para los resultados. No estaba muy satisfecho con eso, pero preferiría tomar la bala con la precisión de la actuación. ¡Gracias! +1. – rayryeng

+0

Ha - comentando respuestas de 7 años ahora Ray? ;-) En serio, esto puede estar un poco desactualizado ahora. No he jugado con CUDA durante algunos años y, por lo que sé, el hardware nVidia más reciente puede tener un mejor soporte de doble precisión. –

+2

Jeje, no me di cuenta del año. Busqué la capacidad antes de comentar :). La tarjeta en la que estoy trabajando para mi cliente solo tiene una capacidad de cálculo de 3.0 y sigue siendo solo la mitad de la precisión simple. Solo ha estado en completo soporte desde 6.0 ... Lástima. Gracias, no obstante, ¡incluso si esto tenía 7 años! – rayryeng

8

Siguiendo con los comentarios de Paul R, los dispositivos Compute Capability 2.0 (también conocidos como Fermi) tienen una compatibilidad de doble precisión mucho mejor, con un rendimiento de solo la mitad que la precisión simple.

Este Fermi whitepaper tiene más detalles sobre el doble rendimiento de los nuevos dispositivos.

+0

+1: gracias por esa información adicional. Hace más de un año que no trabajo con CUDA y no tenía conocimiento de Compute Capability 2.0. ¡La tecnología no se mantiene por mucho tiempo! –

+1

Tenga en cuenta que el rendimiento de doble precisión de Fermi es (artificialmente) menor para las tarjetas GeForce que para las Teslas. Las tarjetas Quadro deben tener el mismo nivel de rendimiento que las tarjetas Tesla. – Eric

+0

Desafortunadamente, las tarjetas Quadro parecen tener un precio de alrededor de 10 veces el precio de las tarjetas GeForce con las GPU correspondientes (aunque las tarjetas Quadro vienen con más memoria). –

10

Como consejo:

Si desea utilizar doble precisión tiene que definir la arquitectura de GPU para sm_13 (si su GPU soporta).

De lo contrario, convertirá todos los dobles en flotadores y solo dará una advertencia (como se ve en la publicación de faya). (muy molesto si se obtiene un error debido a esto :-))

La bandera es: -arch=sm_13

2

si quieres más precisión que la que su tarjeta de CUDA de edad ofrece puede utilizar la solución flotante de flotación . En las GPU modernas también puede usar double-double para lograr una precisión mayor que el doble.

Más información here

Cuestiones relacionadas