VexCL: Vector expression template library for OpenCL

May 30th, 2012

VexCL is vector expression template library for OpenCL developed by the Supercomputer Center of Russian academy of sciences. It has been created for ease of C++ based OpenCL development. Multi-device (and multi-platform) computations are supported. The code is publicly available under MIT license.

Main features:

  • Selection and initialization of compute devices according to extensible set of device filters.
  • Transparent allocation of device vectors spanning multiple devices.
  • Convenient notation for vector arithmetic, sparse matrix-vector multiplication, reductions. All computations are performed in parallel on all selected devices.
  • Appropriate kernels for vector expressions are generated automatically first time an expression is used.

Doxygen-generated documentation is available at

  • Marc Driftmeyer

    Any work on C and ObjC interfaces? Or am I better off writing my own?

  • Denis Demidov

    This is a C++ template library. I think providing C or ObjC interface for it is pretty pointless.

  • sajjad


    Thanks for the library.

    I would be nice if you put some reference material that will work as a hint for the developer to extend it further so that it could be built up like “Thrust” in CUDA