JavaCL / OpenCL4Java 1.0 beta 4 released (OpenGL interop, Reduction support, wrapper generator...)
JavaCL (and OpenCL4Java) v1.0-beta-4 is available !</p>
Download / Browse JavaDoc / Discuss
Click here to launch the latest JavaCL ParticlesDemo :
Here are the main changes from this new version :
- Changed semantics of offset & length arguments in typed CLxxxBuffer.read / write / map methods : now expressed in elements, not in bytes (e.g. 4 bytes per element for CLIntBuffer)
- Added OpenGL interoperability methods to CLContext and CLQueue (can create a CLByteBuffer from an OpenGL buffer object, a CLImage2D/3D from an OpenGL 2D/3D texture or a renderbuffer).
- Added OpenGL-compatible context creation methods to JavaCL & CLPlatform classes
- Added basic reduction support in ReductionUtils (cumulative additions, multiplications, min, max…)
- Created javacl-demos package, with Particles, Hardware Report and Mandelbrot demos…
- Finished migration from NativeLong to NativeSize (changes only the low-level bindings)
- Added profiling methods to CLEvent (+ facility CLDevice.createProfilingQueue())
- Better JavaDoc for low-level bindings (links to Khronos online manual pages)
- Added deferred program allocation : CLProgram.addSource(String), CLProgram.allocate() (called automatically)…
- Added very simple OpenCL backend for UJMP (Universal Java Matrix Package), which does matrix multiplications in OpenCL.
- Created a kernel wrapper autogenerator (Maven plugin based on JNAerator) : translates all constants on the Java side and presents kernels as methods with the correct Java argument types. It assumes OpenCL kernels (*.c, *.cl) are in src/main/opencl
- Added wrappers around clGetKernelWorkGroupInfo
- Fixed respect of endianness of devices that have different endianness than platform