JavaCL v1.0.0 RC4 is available!

Download / Install   Browse JavaDoc   Getting Started (Tutorial)   Discuss

JavaCL is a BSD-licensed library that provides object-oriented OpenCL bindings for Java, helping run massively-parallel computations on graphic cards (and/or CPUs).

The project is migrating to its own GitHub repository, where all new issues should be filed.

Release Notes

Here are the changes between 1.0.0-RC3 and 1.0.0-RC4 (see full CHANGELOG) :

  • Dropped Blas artifact from main deployment (requires addional repo since ujmp is not in Maven Central)
  • Dropped support for JNA variant of JavaCL. Migration is highly encouraged to get more features and bugfixes: [https://code.google.com/p/javacl/wiki/MigratingFromJNAToBridJ](https://code.google.com/p/javacl/wiki/MigratingFromJNAToBridJ)
  • Updated to BridJ 0.7 (brings fixes and lots of performance enhancements)
  • Optimized allocation of native memory throughout the library (reusing thread-local pointer pools)
  • Optimized (CLDevice, CLPlatform).hasExtension
  • Added basic handling of structs in JavaCL Generator ([issue nativelibs4java#421](https://github.com/nativelibs4java/nativelibs4java/issues/421), [issue nativelibs4java#422](https://github.com/nativelibs4java/nativelibs4java/issues/422), [issue nativelibs4java#423](https://github.com/nativelibs4java/nativelibs4java/issues/423))
  • Added CLBuffer.copyTo, .copyBytesTo, .copyElementsTo
  • Added CLBuffer.fillBuffer to support OpenCL 1.2 clEnqueueFillBuffer ([issue nativelibs4java#232](https://github.com/nativelibs4java/nativelibs4java/issues/232))
  • Added CLDevice.getParent()
  • Added CLDevice.getPrintfBufferSize(), .isPreferredInteropUserSync(), .isLinkerAvailable()
  • Added CLImage.copyTo ([issue nativelibs4java#508](https://github.com/nativelibs4java/nativelibs4java/issues/508))
  • Added CLImage.fillImage ([issue nativelibs4java#232](https://github.com/nativelibs4java/nativelibs4java/issues/232))
  • Added CLPlatform.unloadPlatformCompiler() with automatic switch between OpenCL 1.1 clUnloadCompiler and OpenCL 1.2 clUnloadPlatformCompiler ([issue nativelibs4java#232](https://github.com/nativelibs4java/nativelibs4java/issues/232))
  • Added CLQueue.enqueueBarrier & .enqueueMarker to support clEnqueueBarrierWithWaitList & clEnqueueMarkerWithWaitList (switching between OpenCL 1.1 and OpenCL 1.2 variants automatically) ([issue nativelibs4java#232](https://github.com/nativelibs4java/nativelibs4java/issues/232))
  • Added CLQueue.enqueueMigrateMemObjects ([issue nativelibs4java#232](https://github.com/nativelibs4java/nativelibs4java/issues/232))
  • Added JAVACL_LOG_CALLS=1 / -Djavacl.logCalls=true to log every native call (similar to BRIDJ_LOG_CALLS except it prints the parameter and return values)
  • Added many missing CLDevice 1.2 info getters ([issue nativelibs4java#232](https://github.com/nativelibs4java/nativelibs4java/issues/232)),
  • Added MapFlags.WriteInvalidateRegion (CL_MAP_WRITE_INVALIDATE_REGION from OpenCL 1.2) ([issue nativelibs4java#232](https://github.com/nativelibs4java/nativelibs4java/issues/232))
  • Fixed crash in CLPlatform.getBinaries()
  • Fixed excessive logs for deprecated features and missing OpenCL 1.1 and 1.2 functions (especially if version < deprecatedVersion)
  • Fixed [issue nativelibs4java#387](https://github.com/nativelibs4java/nativelibs4java/issues/387): don't call clReleaseDevice (OpenCL 1.2) unless explicitly needed
  • Fixed [issue nativelibs4java#397](https://github.com/nativelibs4java/nativelibs4java/issues/397): crash on Radeon due to bug in driver (attempts to get the source from a program created with clCreateProgramWithBinary yields a segfault)
  • Fixed [issue nativelibs4java#397](https://github.com/nativelibs4java/nativelibs4java/issues/397): major bug in CLProgram
  • Fixed [issue nativelibs4java#420](https://github.com/nativelibs4java/nativelibs4java/issues/420): horrible random native crash (double release, found with new -Dbridj.debug.pointer.releases=true).
  • Fixed [issue nativelibs4java#453](https://github.com/nativelibs4java/nativelibs4java/issues/453): don't try to load cached binaries for programs created from binaries!
  • Fixed [issue nativelibs4java#455](https://github.com/nativelibs4java/nativelibs4java/issues/455): when reading binaries, skip devices that are not allowed
  • Fixed [issue nativelibs4java#479](https://github.com/nativelibs4java/nativelibs4java/issues/479): avoid some NPEs in CLProgram.getProgramBuildInfo
  • Fixed typo: CLDevice.getOpenCLVersion -> getOpenCLCVersion

 

 

Getting started

You can read the Getting Started (Tutorial) page on the wiki to get started very quickly !

Please join the NativeLibs4Java Google Group to discuss JavaCL, get the latest news and ask for support from the growing JavaCL community.