jocl.org
Java bindings for OpenCL
This site contains Java bindings for OpenCL, the
Open Computing
Language.
OpenCL allows writing programs for heterogeneous platforms, that utilize CPUs or GPUs. More
information about OpenCL may be found at the
Khronos OpenCL website. The
API of JOCL has been kept close to the original API of OpenCL. The functions are provided
as static methods, and semantics and signatures of these methods have been kept consistent
with the original library functions, except for the language-specific limitations of Java.
You may
browse the JOCL API documentation here,
or obtain it as an archive in the
Downloads section.
The following implementations of OpenCL are currently available:
News
2010-04-17: An experimental library for handling structs has been uploaded
-
An experimental library has been added on the
utilities page,
which shows how OpenCL structs could be represented
in Java.
2010-04-13: A utilitiy for tracing JOCL events has been uploaded
-
This utiltity class may be used to show a bar plot of the commands that are
associated with OpenCL events:
More information is available on the utilities page.
2010-04-12: Update with bugfix for OpenCL / OpenGL interoperability
-
An update to version 0.1.3a: Due to bug in the native library,
the OpenGL interoperability did not work properly in the previous
version. The updated source code and binaries are available in the
downloads section.
Thanks to Philipp Stelzer for finding the reason for this bug.
Additionally, the samples section
now contains a modified version of the simple GL example, which uses
JOGL 2 to demonstrate the JOCL/JOGL interoperability.
2010-03-28/29: Binaries for Linux 32 bit and Windows 64 bit uploaded
-
Pre-built binaries for 32bit Linux and 64 bit Windows are now available in the
downloads section.
2010-03-24: Update to version 0.1.3
-
The downloads section contains
the new source code and pre-built binaries for 32bit Windows and
64bit MacOS. The MacOS binaries have been provided by Ryan Spicer from
the School of Arts Media and Engieering at Arizona State University.
Other binaries will be uploaded soon.
-
The new version contains some bug fixes (see
change log for details)
-
Asynchronous operations are now possible. That means that clEnqueue* methods
are no longer ignoring the 'blocking' flag.
2010-03-10: Binaries for MacOS 64 bit uploaded
-
Pre-built binaries for 64bit MacOS are now available in the
downloads section.
Thanks to Ryan Spicer from the School of Arts Media and
Engieering at Arizona State University for providing
these binaries.
2010-02-21: Binaries for Windows 64 bit uploaded
-
Pre-built binaries for 64bit Windows Vista are now available in the
downloads section. The Visual
Studio project file in the source code package has been updated to
support 64bit systems.
2010-02-02: New samples uploaded
-
Some new samples have been uploaded:
One sample computes the Mandelbrot set using a "Quad-Float" data type,
namely float4 values for which the computations are performed
using some functions that have been ported from the Quad-Double package from
http://crd.lbl.gov/~dhbailey/mpdist/index.html. This allows some
high-precision computations even on devices that do not support double
precision in hardware.
Another sample shows how a simple image convolution may be performed with JOCL.
The class that performs the convolution implements the
java.awt.image.BufferedImageOp interface, and may thus be
used easily as a replacement for the java.awt.image.ConvoleOp.
2010-01-29: Binaries for Linux 64 bit uploaded
-
Pre-built binaries for 64bit linux are now available in the
downloads section.
Thanks to Ricardo Ferreira for providing these binaries.
2010-01-21: Update to version 0.1.2
-
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.
-
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 decription.
2010-01-07: JOCL forum opened
2009-12-14: Linux 32 bit binaries and makefiles uploaded
-
The downloads section now
contains binaries for Linux 32 bit, as well as makefiles for
Linux in the source code package.
2009-12-10: Update to 0.1.1 - New samples - License changed to Lesser GPL
-
JOCL has been updated to version 0.1.1, including minor bug fixes.
Additionally, the new DLL should run with both NVIDIAs and AMDs
latest OpenCL implementation.
-
New samples demonstrating JOCL/JOGL interoperability and event handling and profiling
have been added in the samples section.
-
The license of JOCL has been changed to the
Lesser GPL.
2009-12-01: OpenCL utilities for JOCL published
-
The utilities that are used in the NVIDIA samples for OpenCL have
been ported to Java. The library may be obtained at
http://www.ithilian.com/jclu.
2009-11-12: Updated of AMD DLL for version beta
4 of the Stream SDK
2009-11-04: General note about JOCL
-
There exist Java Bindings for OpenCL which include a high-level
object-oriented abstraction layer, which is based on direct
bindings to OpenCL that are created with JNA. This project,
named "OpenCL4Java", is hosted at
http://code.google.com/p/nativelibs4java/wiki/OpenCL.
There are considerations to combine the efforts of OpenCL4Java
and JOCL, but the decision is still pending.
2009-11-04: MacOS binaries and project files
-
Binaries for Mac OS X (10.6) and XCode project files have kindly been
provided by Luca Lutterotti from the University of Trento, and are
available in the Downloads
section.
2009-10-19: Initial release of JOCL 0.1-beta
-
The source code of JOCL 0.1-beta and the Windows 32bit binaries of
JOCL for the AMD and the NVIDIA OpenCL implementation are available
in the Downloads
section.
(
Change log)