(Negación: Soy el autor de JavaCL y BridJ)
Además de su versión basada en JNA, JavaCL tiene un completamente funcional El puerto BridJ tiene licencia completa bajo BSD (ya que BridJ tiene licencia BSD).
FYI BridJ ofrece gastos indirectos significativamente más bajos que JNA, se acerca al rendimiento JNI y sigue siendo muy portátil (actualmente se lanza con binarios de 32 y 64 bits para Windows, Linux y MacOS X, pero se planean otras plataformas).
Sin embargo, el rendimiento de las vinculaciones de bajo nivel no es lo único a tener en cuenta. Si bien las API orientadas a objetos de JavaCL y JOCL tienen un aspecto similar, tienes que cuidar de los extras. No sé sobre JOCL, pero los barcos con JavaCL:
- # include transparente de los archivos de la ruta de clases Java o desde cualquier URL
- almacenamiento en caché automático y transparente de los programas binarios
- utilidades de reducción
- un generador de álgebra lineal utils
- de números aleatorios (una biblioteca, no una demostración!)
- un nice GUI to experiment with image transform kernels within seconds
- un plugin Maven que analiza los núcleos OpenCL (que se encuentra en src/main/OpenCL) y genera mecanografiadas clases del programa con un método de Java escrito por kernel (la aplicación de la corrección de la lista de argumentos en tiempo de compilación)
JavaCL también es utilizado por ScalaCL (colecciones respaldadas por OpenCL de propósito general + complemento del compilador de Scala para optimizar el código), que es una buena manera de evitar escribir cualquier kernel en absoluto (aunque aún está en desarrollo a partir de este momento).
Otra cosa a considerar es la fácil disponibilidad de los binarios para plataformas estándar (Windows, Linux y MacOS X al menos) y la integración para construir sistemas como Maven. JavaCL solía ser el mejor en mi humilde opinión, pero las cosas podrían haber cambiado (y seguramente cambiará).
Finalmente, Marco Hutter's JOCL es otro enlace de OpenCL, pero sin API de alto nivel. Sin embargo, podría ser más rápido que OpenCL4Java (JavaCL) o JOCL para llamadas de bajo nivel.
EDITAR: JavaCL ahora está cubierto por un capítulo en el libro OpenCL in Action de Matthew Scarpino.
¿Pero el OP no está preguntando sobre JavaCL no JOCL.org? – Chinasaur
sí. Es por eso que mencioné jocl.org solo brevemente en una oración ya que no quería dejarlo. – mbien
Pero no se dirigió a JavaCL; confuso. Pero buena información, gracias. – Chinasaur