boost :: compute是否支持const修饰符?

时间:2016-08-27 05:26:29

标签: c++ boost opencl gpu boost-compute

是否可以设置哪些函数参数具有'global'或'const'修饰符?或者至少如何在每个函数的基础上检查生成函数的代码(手动插入)?

我看到的最近的事情是BOOST_COMPUTE_STRINGIZE_SOURCE,你手工编写所有内核代码,将其保存到字符串中,手动编译,使用set_arg(argId, wrapedItems)queue.enqueue_nd_range_kernel调用看起来比复杂得多:

    BOOST_COMPUTE_CLOSURE(ftype, kick, (ftype beam), (__const voltage), {
        return beam * sin(beam + voltage);
    });

人们希望。

1 个答案:

答案 0 :(得分:1)

BOOST_COMPUTE_CLOSURE()构造了一个可以传递给Boost.Compute函数的函数,如transform()sort()。与BOOST_COMPUTE_FUNCTION()相比,它允许捕获范围内的C ++变量。它不构造OpenCL内核对象,因此实际上不需要指定地址空间限定符,因为它从不对指针进行操作,只对值进行操作。

但是,如果拥有自己的内核并希望将__constant缓冲区作为参数传递给它,那么请使用constant_buffer_iterator