--------------

FreeOCL

Description

FreeOCL is a free CPU implementation of OpenCL for Linux. It is available under the GNU LGPL v3 license. As opposed to lots of other OpenCL drivers, it uses a simple C++ compiler instead of LLVM/Clang in order to build the OpenCL C code. Using your favorite C++ compiler enables you to use your debugging tools to debug your OpenCL C code. It gives you more freedom over what you can do from your OpenCL C code since it can use system librairies.

April 29 2011
FreeOCL is still under active development. Currently you can think of it as a pre-alpha product (after 2 days of work ;) ).

May 3rd 2011
FreeOCL is able to build and run basic kernels, buffers as kernel arguments are supported. There is still some work to do but it's still software in alpha stage.

May 15th 2011
FreeOCL has a new hand-written parser. It successfully runs the RadixSort sample from AMD's SDK.

September 13th 2011
More built-in functions are supported. The ternary selection operator ?: is implemented for both scalars and vectors.
Array initializers are supported (things like "int4 a = {0, 1, 2, 3};"), swizzling too and several bugs have been fixed. FreeOCL is now able to run more samples from AMD's SDK :).
Thanks to Nikolay Nikolaev FreeOCL begins to support more platforms.

October 24th 2011
FreeOCL is now hosted on Google Code: http://code.google.com/p/freeocl/
.

Motivation

As a developper I don't like to have to maintain several code paths for the same thing. I would like to start writing OpenCL programs for the platform I use (various flavors of Linux) but without a free CPU driver for OpenCL I would have to write a fallback in case OpenCL is not available (which would require more work and less fun ...). Seeing that there were no open source project aiming to implement a CPU driver for OpenCL on Linux I decided to write one using existing technologies (basically a C++ compiler with OpenMP support).

Why use a C++ compiler when you have the Clang/LLVM toolchain ? Well, because Clang, GCC, ICC or another compiler could be the C++ compiler, not just Clang. Also it doesn't force you to use some toolchain you don't want to use (unless you really can't stand C++ compilers) and you can use your usual debugging tools.

Already implemented features (OUTDATED)


This page is outdated, please visit the new project page for up to date information.

Download

You can check out the subversion repository with the following command: # old repository (still active but outdated)
svn co svn://www.zuzuf.net/FreeOCL
# new repository
svn checkout http://freeocl.googlecode.com/svn/trunk/

Valid HTML 4.01 Strict