About JOCL

JOCL is a library that provides Java bindings for OpenCL.

The JOCL main page containing pre-built binaries and samples may be found at http://www.jocl.org/

There is a minor update of JOCL to version 0.1.2.

As Ithildin pointed out in http://forum.byte-welt.de/showpost.php?p=10887&postcount=3 , in the latest OpenCL implementations the creation of a context requires passing in a non-null cl_context_properties object, which specifies the target platform. Due to an error in the context properties handling, this was not possible in JOCL version 0.1.1. This bug is now fixed, and the samples have been updated accordingly.

Additionally, a small but helpful new feature: When exceptions are enabled, the exception that is thrown due to errors in the source code during a call to clBuildProgram will now contain the build log which contains the error description.

A bug has been removed, which caused an error when the native library should be loaded on a turkish windows system.

JOCL has been updated to version 0.1.3, including fixes for the following bugs:
[ul]
[li]It was not possible to add multiple properties to cl_context_properties
[/li][li]Pointers to direct buffers could not be garbage collected, which caused a small memory leak
[/li][li]The program received in the callback function of clBuildProgram was a Java object which was in such an illegal state that accessing it caused a JVM crash
[/li][li]The clGetPlatformIDs and clGetDeviceIDs functions did not properly use the num_entries parameter which could cause an ArrayIndexOutOfBoundsException
[/li][/ul]

Additionally, non-blocking read- and write operations are now possible. In previous versions, the ‘blocking’ flag for clEnqueue* operations had been ignored and was set to ‘true’ by default, since the use of non-blocking operations may include some difficulties, especially in combination with Java Garbage Collection. Further information about this feature and how it may be used with JOCL will soon be published here.

The latest version of JOCL may be obtained from http://jocl.org/downloads/downloads.html . Currently there are only pre-built binaries for 32 bit Windows. Other binaries will follow soon.

A beta version of JOCL 0.1.4 with support for OpenCL 1.1 has been uploaded.

Note that this version could only be tested using the CPU OpenCL implementation from AMD until now.

Changes to the previous version:
[ul]
[li]Updated to OpenCL 1.1
[/li][li]Changed license to MIT/X11 license
[/li][li]Updated the JavaDoc documentation
[/li][li]Fixed minor bug in CL#stringFor_cl_device_type(int)
[/li][li]Fixed bug in native part of CL#clCreateProgramWithBinary
[/li][li]No longer calling JNI functions between Get/ReleasePrimitiveArrayCritical
[/li][li]Some internal restructuring of the callback functions
[/li][/ul]

Currently, binaries for Windows 32 and 64 bit are available. Other binaries will follow soon.

Versions 0.1.5 and 0.1.6 have been uploaded. Version 0.1.5 fixed a memory leak due that occurred for clEnqueue* operations. Version 0.1.6 contains an additional bugfix to allow loading the native libraries from the JAR file on MacOS.

Version 0.1.7 has been uploaded.
[ul]
[li]CLException now provides the CL status value
[/li][li]Added vendor-independent constants from the CL extensions
[/li][li]The native libraries now contain a version number in their name
[/li][/ul]

Version 0.1.8 has been uploaded (as a release candidate)

[ul]
[li]Update for OpenCL 1.2 support
[/li][li]JOCL has undergone a considerable internal refactoring. The native functions are now resolved via function pointers. This allows to use a JOCL version that supports a different OpenCL version than that of the underlying OpenCL implementation. For example, it is possible to use JOCL 0.1.8 with support for OpenCL 1.2, even if the installed OpenCL implementation only supports OpenCL 1.1. The functions that are not supported will then throw an UnsupportedOperationException when they are called.
[/li][/ul]

The binaries for Linux 64bit are still missing, but will be added as soon as possible.

Version 0.1.9 has been uploaded and may be obtained from http://jocl.org/downloads/downloads.html or the central Maven repository

[ul]
[li]This version includes all libraries for Windows 32/64bit, Linux 32/64bit and MacOS 64bit
[/li][li]A bug in clLinkProgram has been fixed
[/li][li]Compilation issues on Linux have been resolved
[/li][/ul]

A release candidate of version 0.2.0, with support for OpenCL 2.0, has been uploaded to jocl.org - Downloads.

Currently, it is an archive containing the Windows 64 bit binaries. When the other binaries are available, the version will be finalized and uploaded to the central Maven repository.

JOCL has been updated. It now follows the OpenCL version numbering, so the new version is 2.0.0, and available in Maven Central:




<dependency>
    <groupId>org.jocl</groupId>
    <artifactId>jocl</artifactId>
    <version>2.0.0</version>
</dependency>

Additionally, a first version of JOCLBlast has been released. The coordinates are


<dependency>
    <groupId>org.jocl</groupId>
    <artifactId>jocl-blast</artifactId>
    <version>0.7.0</version>
</dependency>