Home

Awesome

OpenCRun -- Yet another OpenCL runtime

OpenCRun is an OpenCL runtime developed for research purpose at Politecnico di Milano. It used LLVM and Clang to compile OpenCL kernels into executable code.

It can support different devices. Right now, only CPU devices (i386 and X86_64) are supported.

Integration with LLVM/Clang

The whole runtime heavily exploit LLVM/Clang libraries and build system. LLVM/Clang must be installed before building OpenCRun.

Currently OpenCRun has been built and tested with LLVM/Clang up to release 6. Tags are also available in the OpenCRun repository to revert back its source code to versinons compatible with LLVM/Clang 3.5 and 3.7 (Note: v.3.5 requires GCC < 4.9).

Current quality status

Most of the OpenCL API and the OpenCL C library functions are supported. The unittests directory contains automated tests using OpenCRun through the OpenCL C++ API. Moreover, in the bench directory there are some more complex examples.

Installing

OpenCRun requires that LLVM is built with run-time type information enabled. If building from a sub-directory of the LLVM source tree:

cmake .. -DCMAKE_INSTALL_PREFIX=${HOME}/local -DLLVM_ENABLE_RTTI:BOOL=1

Then, the LLVM/Clang source and build directories must be specified when building OpenCRun:

cmake .. -DCMAKE_INSTALL_PREFIX=${HOME}/local 
  -DLLVM_SRC_ROOT=<LLVM source dir>
  -DLLVM_OBJ_ROOT=<LLVM build dir>

Authors

For any question, please contact Ettore Speziale or Alberto Magni.