【发布时间】:2025-12-02 12:15:02
【问题描述】:
是否可以设置哪些函数参数具有“全局”或“常量”修饰符?或者如何至少在每个函数的基础上检查生成函数的代码(手动插入)?
我看到的最接近的事情是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);
});
希望。
【问题讨论】:
-
您的意思是“Is it possible to see”吗?你的意思是“哪个方法有一个 const 修饰符”?你说的“全局修饰符”是什么意思,可能是
static? -
@GiovanniFunchal 啊,谢谢。如果是这样,它们就不是标准的 C 或 C++,它们是处理 GPU 内容的特定扩展,对吧?
-
是的,我认为最初的问题令人困惑。 boost::compute 在更好的 C++ api 中围绕来自 OpenCL 的
__global和__constant扩展,我不确定混合它们是否有意义。 -
@GiovanniFunchal:我的问题是,当我定义
BOOST_COMPUTE_CLOSURE并传递参数时,我无法为 CLOSURE 变量设置__const或__local并且不清楚哪个参数传递给功能。
标签: c++ boost opencl gpu boost-compute