Boost logo

Boost :

Subject: Re: [boost] Interest in a GPU computing library
From: Felipe Magno de Almeida (felipe.m.almeida_at_[hidden])
Date: 2012-09-18 12:58:24


On Tue, Sep 18, 2012 at 1:28 PM, Kyle Lutz <kyle.r.lutz_at_[hidden]> wrote:
> Thanks for all the comments and feedback so far! I’ve written up
> answers to your questions below (which should serve as a good start
> for a FAQ for the library). Please let me know if anything is not
> clear or if I forgot to answer your question.

[snip]

> *** Is it possible to use ordinary C++ functions/functors or C++11
> lambdas with Boost.Compute? ***
>
> Unfortunately no. OpenCL relies on having C99 source code available at
> run-time in order to execute code on the GPU. Thus compiled C++
> functions or C++11 lambdas cannot simply be passed to the OpenCL
> environment to be executed on the GPU.
>
> This is the reason why I wrote the Boost.Compute lambda library.
> Basically it takes C++ lambda expressions (e.g. _1 * sqrt(_1) + 4) and
> transforms them into C99 source code fragments (e.g. “input[i] *
> sqrt(input[i]) + 4)”) which are then passed to the Boost.Compute
> STL-style algorithms for execution. While not perfect, it allows the
> user to write code closer to C++ that still can be executed through
> OpenCL.

Could it use boost.phoenix v3? IUC, Phoenix v3 creates a boost.proto
expression. The library could make transformations to these
expressions.

[snip]

> Thanks,
> Kyle

Regards,

-- 
Felipe Magno de Almeida

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk