Haskell bindings for OpenCL https://github.com/merijn/hopencl

Latest on Hackage:0.2.1

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD3 licensed by Merijn Verstraaten <merijn@inconsistent.nl> (2014-present), Martin Dybdal <dybber@dybber.dk> (2011-2014)
Maintained by Merijn Verstraaten


The present repository contains the latest snapshot of a set of Haskell bindings to version 1.1 of the OpenCL specification.

The following sections of the OpenCL specification are not supported currently:

  • Image Objects (section 5.3)
  • Sampler Objects (section 5.5)
  • Profiling of memory objects and kernels (section 5.12)
  • Extensions of the OpenCL standard involving the API
  • OpenGL and D3D related functions

In addition, the are not currently any Haskell wrappers for the following functions:

clCreateSubBuffer, clEnqueueReadBufferRect, clEnqueueWriteBufferRect, clEnqueueCopyBufferRect, clEnqueueMapBuffer, clEnqueueUnmapMemObject, clEnqueueNativeKernel


Installation is handled by cabal, but the tool c2hs is needed for compilation and should be installed prior to hopencl.

cabal install c2hs
cabal install


In examples-directory two simple examples of how the hopencl package can be used are shown. They can be executed using runhaskell

cd examples/PlatformInfo/
runhaskell PlatformInfo.hs
cd examples/VectorAdd/
runhaskell VectorAdd.hs


Haddock documentation is available at http://projects.haskell.org/hopencl/


To compile the test suite, the flag --enable-tests must be given to cabal. The tests can then be executed using cabal test.

cabal install --enable-tests
cabal test

Questions and bug reports

Feel free to contact me by email at with any questions or bug reports.

Alternatively, bugs can be submitted through the bug tracker at: http://github.com/merijn/hopencl/issues

Depends on:
Used by 1 package:
comments powered byDisqus