OpenCL:使用CL_MEM_COPY_HOST_PTR的错误值

时间:2015-06-02 09:59:23

标签: opencl

我遗憾地写了以下代码

//host
float filter[9] = 
    { 1, 2, 1,
      0, 0, 0,
     -1, -2, -1
     };
cl::Buffer Filter(m_prog.getContext(), 
      CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, 9 * sizeof(float), filter);
//..
//device
foo(..., __constant float * filter,...)
{
printf("%i %i %i %i %i %i %i %i %i\n", filter[0], filter[1], filter[2], 
      filter[3], filter[4], filter[5], filter[6], filter[7], filter[8]);

我得到以下输出

  

0 1072693248 0 1073741824 0 1072693248 0 0 0

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您使用错误的printf转换说明符。正确的应该是:

printf("%f %f %f %f %f %f %f %f %f\n", filter[0], filter[1], filter[2], 
  filter[3], filter[4], filter[5], filter[6], filter[7], filter[8]);