2012-09-08 15 views
5

Estoy escribiendo un kernel OpenCL que implica algunas barreras en un bucle. He probado el kernel en la CPU (8-core FX8150) y el resultado muestra que estas barreras reducen la velocidad de funcionamiento en un factor de 50 ~ 100 veces (esto lo compruebo al volver a implementar el kernel en Java usando multi-threading + CyclicBarrier) . Sospecho que la razón fue que la barrera esencialmente detiene la CPU aprovechando la ejecución fuera de orden, así que estoy un poco preocupado si pudiera observar la misma magnitud de disminución de velocidad en la GPU. Revisé algunos documentos oficiales y busqué en Google un poco, pero hay poca información disponible sobre este tema.¿La GPU moderna (por ejemplo, Fermi/Evergreen) admite la ejecución fuera de servicio?

+0

Por supuesto que tiene. Debe dividir los cálculos de fuga de tiempo de forma heterogénea a través del código, de modo que pueda hacer cálculos enteros. mientras haces flotar al mismo tiempo –

+0

@ tuğrulbüyükışık Gracias. ¿Puede indicarme un documento oficial que lo confirme (para fines de referencia)? – aaronqli

Respuesta

7

actual estado de las GPU arte están en orden pipeline del procesador. Las GPU llenan la tubería de manera efectiva intercalando instrucciones de diferentes urdimbres (frentes de onda). En las comparaciones, las CPU utilizan la ejecución especulativa fuera de orden para llenar la tubería. Hay diferentes unidades funcionales como ALU y SFU que tienen tuberías separadas. Pero observe que la dependencia de la instrucción detiene el warp. Para obtener más información sobre la resolución de dependencia de instrucciones en GPU, consulte this NVIDIA patent.

2

de NVIDIA de próxima generación
CUDA Cálculo y Gráficos Arquitectura, cuyo nombre en código “Fermi”:

Nvidia GigaThread Engine tiene capacidades de (en la página 5)

  • 10x contexto de aplicación más rápida conmutación
  • Ejecución concurrente del kernel
  • Ejecución del bloque de hilos fuera de servicio :)
  • Dual solapadas motores de transferencia de memoria

Evergreen has SIMD capabilities and has a chance outperform some fermi but i dont know about oooe of it. There is also "local atomic add" upper hand of HD 7000 series compared to GTX 600 series (nearly 10x faster)

Cuestiones relacionadas