JavaCL 1.0.0-RC4: bugfixes + partial support for OpenCL 1.2
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.