Boost logo

Boost :

Subject: Re: [boost] Interest in a GPU computing library
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2012-09-18 16:32:37


On 09/18/2012 10:05 PM, Eric Niebler wrote:
> On 9/18/2012 11:42 AM, Manjunath Kudlur wrote:
>>>
>>>> With CUDA, you'd actually have hit the problem that the Proto functions
>>>> are not marked __device__, but with OpenCL it doesn't matter.
>>>
>>> Mathias, Could you say more about what is needed to make Proto
>>> CUDA-friendly? I'm not familiar with CUDA.
>>
>> The thing needed to make Proto more CUDA-friendly is the same thing that is
>> needed to make it AMP-friendly, in case you are familiar with C++ AMP [1].
>> Basically, you have to intrusively annotate every Proto function with the
>> "__host__ __device__" annotation (restrict(x86, amp) in the case of C++
>> AMP).
>
> *Every* function in Proto? Or the just ones that build Proto
> expressions? Or evaluate them? Or some other subset?

The ones to evaluate them.
value, proto_base and child_c could be a usable subset.

Older CUDA versions were a bit broken, and easily had internal compiler
errors. At MetaScale we actually translate Proto expressions to our
custom expression types for CUDA to avoid this, but maybe straight Proto
could work well enough now.
As a side node, it also allows use to have shorter symbol names, which
was a bit of a problem with Proto.


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