如何使用clBuildProgram为OpenCL添加宏

时间:2013-03-11 02:14:34

标签: opencl

在我的内核中我定义了这个。

#define ACTIVATION_FUNCTION(X) (1.7159f*tanh(2.0f/3.0f*X))

我想在clBuildProgram调用中定义它,这样我就可以在运行时更改内核。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您可以将-D参数用于OpenCL编译器,方法是将其传递给options函数的clBuildProgram参数。传递-D x=y相当于在内核文件的顶部添加#define x y。同样,传递-D x相当于添加#define x(当然,对于任何xy

在你的情况下,你可能希望传递这样的东西:

-D ACTIVATION_FUNCTION(X)=(1.7159f*tanh(2.0f/3.0f*X))

然后,您可以在运行时直接从程序中根据需要进行更改。

注意你也可以打开内核文件并直接将define写入其中,作为替代解决方案,但这可能是最干净的方法。请小心换行,我不确定它们的处理情况。


参考。 this documentation page on clBuildProgram,“预处理器选项”部分。