
On Tuesday, September 18, 2012 11:43:25 AM Beren Minor wrote:
On Tue, Sep 18, 2012 at 10:58 AM, Thomas Heller <thom.heller@gmail.com> wrote:
Oops, guess I am wrong here. Taking a more thorough look at the thrust documentation it looks like different backends are indeed supported.
Multiple backend indeed, but apparently not OpenCL. I guess then it's a gap that has to be filled, but extending Thrust to support OpenCL (if possible) might be more beneficial than rewriting another library that only supports OpenCL.
A few years ago, when I started using thrust, I think the FAQ stated that OpenCL will never be supported by thrust. Now the statement is a little weaker: "When will Thrust support OpenCL? The primary barrier to OpenCL support is the lack of an OpenCL compiler and runtime with support for C++ templates (e.g., something similar to nvcc and the CUDA Runtime). These features are necessary to achieve close coupling of host and device codes." I also think that from the library design it won't be easier to adopt thrust to OpenCL than implementing a new OpenCL library from scratch as the two techniques (CUDA and OpenCL) are fundamentally different. However, I would be very interested in a boost OpenCL library. In odeint, we currently support CUDA by means of thrust, as well as OpenCL in terms of vexCL [1,2]. vexCL is very nice, fast and easy to use, so it sets quite some standard for a boost opencl implementation, I think. [1] https://github.com/ddemidov/vexcl [2] http://www.codeproject.com/Articles/415058/VexCL-Vector-expression- template-library-for-OpenC Mario