我在使用C++绑定编写OpenCL,试图制作一个小型库。OpenCL enqueTask vs enqueNDRangeKernel
NDRange offset(0);
NDRange global_size(numWorkItems);
NDRange local_size(1);
//this call fails with error code -56
err = queue.enqueueNDRangeKernel(kernelReduction, offset, global_size, local_size);
//this call works:
err = queue.enqueueTask(kernelReduction);
现在,错误代码-56是CL_INVALID_GLOBAL_OFFSET。我不知道为什么第一个电话会失败。有什么建议么?
您使用的是什么尺寸?根据OpenCL文档偏移量需要是一个整数偏移量数组,每个偏移量都对应一个特定的维度,但您的代码并不是说它使用了多少维度。 – Thomas 2012-03-14 21:30:40
就我所了解的C++绑定而言,它是由NDRange初始化器给出的。假设有1个整数,它会假定1维,假设2它假定为2. – 2012-03-14 22:12:08