2008-10-17 11 views
21

Tengo una red neuronal escrita en Erlang, y acabo de comprar una tarjeta GeForce GTX 260 con una GPU de 240 núcleos. ¿Es trivial usar CUDA como pegamento para ejecutar esto en la tarjeta gráfica?¿Cómo puedo hacer que un programa concurrente ya escrito se ejecute en una matriz de GPU?

+0

pregunta impresionante, es posible que desee considerar un aumento de esto en la comunidad Erlang, podría inspirar a algunos cambios verdaderamente notable en Erlang! :-) – none

+1

@none: lo dudo. El modelo de simultaneidad de erlang no funciona muy bien con los lenguajes del modelo de simultaneidad como el uso de CUDA o OpenCL. He hecho algunos esfuerzos (aún no publicados) para escribir enlaces de openCL para erlang, pero la única aplicación real que veo para él ahora es hacer cosas como transformaciones rápidas de matriz. – Amadiro

Respuesta

16

No, usar CUDA no es una cuestión trivial.

El modelo de programación CUDA básicamente usa C (con algunas adiciones) pero para aprovechar al máximo las capacidades de la GPGPU, deberá asegurarse de que sus algoritmos sigan las pautas de CUDA. (Ver NVidia CUDA Programming Guide)

Por ejemplo, para obtener el mejor rendimiento de memoria (alrededor de 70 Gbps) necesita acceder a la memoria en modo de transmisión con coalescencia, también las ramificaciones son muy costosas en las GPU, así que debe evitar condicionales tanto como posible. Consulte la guía y las muestras proporcionadas con el SDK, proporcionarán un excelente punto de partida

+0

Sí, eso es mucho trabajo. Para obtener una aceleración significativa, tendrá que entender cómo organizar los datos y el concepto de media urdimbre y coalescencia como se mencionó. También creo que el código de máquina objetivo cambia de acuerdo con la serie GPU ... – Sushant

3

Ojalá pudiera decirle cómo hacerlo con Erlang ... ;-), pero al menos, Satnam Singh en MS La investigación ha realizado un trabajo muy interesante con Haskell (Lava) y F #. Tal vez este trabajo le puede dar alguna intuición de cómo se podría hacerse:

http://research.microsoft.com/en-us/people/satnams/

+1

Enlace roto. La página de inicio de Satnam está aquí: http://research.microsoft.com/en-us/people/satnams/ –

Cuestiones relacionadas