Java OpenCL

Project JOCL provides an easy to use Java binding for the OpenCL API. JOCL exposes the OpenCL API in two levels: A automatically generated low level JNI based binding and a hand written high level binding on top of the generated interfaces. The high level bindings provide a convenient interface and reduce verbosity to a minimum.

Features / Project Goals

  • high performance, cross platform, high and low level OpenCL 1.1 bindings
  • intuitive API
  • seamless interoperability with JOGL
  • secure - automatic Exception handling, no resource management in native code etc
  • GC friendly - no weak references, finalizers or other cheats
  • utility API for Program management, CommandQueue synchronization and more

Screenshots (jocl-demos project)

Realtime-interactive rendering of 4D fractals (Julia Set left, Mandelbrot Set right).
JOCL Julia Set JOCL Mandel Hub Set

Switching precision of floatingpoint calculations made easy (32bit left, 64bit right - very high zoom level).
low precision high precision

Performance comparison between Quicksort on CPU and Radixsort on GPU.
JOCL Radix Sort