当我使用私有参数时,OpenCL内核提供了错误的结果

时间:2019-05-16 13:02:10

标签: opencl

当我将标量值作为内核参数传递时,OpenCl给出错误的结果。但是,当我对内核中的值进行硬编码时,它可以完美工作。我认为我在内核代码中犯了一些错误。请帮助。

我尝试将参数作为全局参数传递,并从全局参数创建私有变量。

Subject

预期: 11.5,12.5,13.5,11.5,12.5,13.5,....... n

实际: 11.5,12.5,13.5, 0,12.5,13.5, 11.5,0,13.5, 11.5,12.5,0, 11.5,12.5,13.5, 0,12.5,13.5, 11.5,0,13.5, 11.5,12.5,0,....... n

1 个答案:

答案 0 :(得分:0)

所有内核参数必须是__global,__local或__constant限定词。 您可以直接在需要的地方硬编码常量,也可以通过以下方式将其烘焙到OpenCL代码字符串中:

"\r\n #define fsx " + to_string(some_float_number) + "f \r\n"

或将它们声明为__constant值。