2011-06-23 23 views
12

En primer lugar: ¿Es posible usar Java y dejarlo (parcialmente) en ejecución o usar GPU? Y si es posible, ¿es posible usar la sintaxis Java normal y no usar la sintaxis especial cuda o opencl?Java en GPU: Método completo directamente en GPUin Java simple

Solo quiero tomar mi fuente java codificada y dejarla funcionar con los menores cambios posibles en las GPU.

Agradecería mucho las muestras de código.

+1

http://gavab.escet.urjc.es/wiki/download/JavaOpenCL/Documentacion/JCUDA.pdf – duffymo

+1

Una opción podría ser cerca Tilera que soporta Java en sus 100 procesadores centrales. –

Respuesta

6

Hay varios enlaces Java a CUDA y OpenCL (jcuda.org, jocl.org, algo más también llamado jocl), pero todos ellos son sólo maneras de conseguir CUDA o OpenCL código que se ejecuta en la GPU a través de Java y requieren que escribir el código en concreto para eso. No creo que haya una manera fácil de ejecutar un programa Java arbitrario de múltiples subprocesos en la GPU con solo cambios menores en el código.

¿Qué hace su programa Java que desea ejecutar en la GPU?

Debe tener en cuenta que la arquitectura de una GPU es bastante diferente a la de una CPU; los núcleos en una GPU no son núcleos de propósito general que pueden hacer cualquier cosa y funcionan de forma independiente, como en una CPU Intel x86. Para aprovechar realmente la arquitectura SIMD específica de una GPU, su código debe escribirse con esa arquitectura en mente.

+0

Hola, simula la trayectoria de un cohete, simplemente integrando el movimiento. Y quiero llevarlo a la GPU, porque es para mi proyecto Boinc http://aerospaceresearch.net/constellation/ y algunos usuarios realmente les gustaría ver una aplicación GPU. Y cuando es más rápido, es aún mejor. Andreas –

+2

¿El algoritmo es masivamente paralelable? Podrías estudiar uno de esos enlaces CUDA o OpenCL, aprender sobre cómo funcionan las GPU y ver cómo puedes implementar tu algoritmo de una manera adecuada para la GPU. No es tan simple como recompilar de alguna manera su programa Java existente ... – Jesper

6

Considere Aparapi http://aparapi.github.io/. Intenta convertir bytecode a OpenCL en tiempo de ejecución. Entonces puede codificar su GPU en Java puro.

Descripción completa, soy el desarrollador líder de Aparapi.

+1

Hmmm, echaremos un vistazo, ¡gracias! :) ¡Entonces necesitaré comprar un newlaptop con gpu incluso antes! :) –

+0

fue a ver su página github. ¿Hay algún tutorial de Hello World en alguna parte? Quiero usar GPU para hacer algunos cálculos criptográficos. en Java – Mordan

8

El compilador de GPU Rootbeer admite la ejecución de código Java arbitrario en la GPU. Es más completa que Aparapi. Rootbeer admite gráficos de objetos arbirary de cualquier tipo.

Se acaba de salir de código abierto en mi cuenta de GitHub: https://github.com/pcpratts/rootbeer1