Z's Simple OpenCL Binding for Java

zcl is a Java binding for OpenCL 2.1. The goal of the design was to create a small and direct binding to OpenCL whilst maintaining `javaness' and a clean and type-safe object orientated interface.

A side goal of the project was to explore Java to native binding mechanisms ``by hand'' rather than scripts and automation.

The API closely follows OpenCL and has 100% coverage and so general OpenCL programming resources should be applicable. All of the header constants are defined in au.notzed.zcl.CL which when imported statically allow direct use as if it were C.

For further details see the README and javadocs.

Status

As of 0.5 it should be considered beta quality code. Most code paths have been tested. The extension mechanism is probably set.

Native kernels written in Java are supported. As is garbage collection and a lambda interface.

The only 'supported' platform is GNU/amd64, but a build script is provided for native code via mingw32.

jogamp's JOCL is recommended as a production-ready solution.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Note that this is not the lesser license, the full source-code must accompany any programme which utilises this library.

Downloads

Due to space and the hassles I am only including the source distribution here; If you can't compile it then you shouldn't be looking at it (it is very easy to compile on a GNU system).

It requires a Java 8 JDK, an OpenCL SDK, and the usual GNU build tools. It only builds on GNU/Linux systems.

There are currently no examples but as the API follows OpenCL closely it should be straightforward to use.

Links

Contact

notzed on various mail servers, primarily gmail.com.


Copyright (C) 2014 Michael Zucchi, All Rights Reserved.