我正在使用标志
CL_MEM_READ_WRITE
在主机上创建一个 Image2d 对象。该图像是一个内核的输出,我希望将其用作“不同”内核的输入。我也在用cl_image_format = {CL_INTENSITY, CL_FLOAT};
这在 OpenCL 1.2 中可能吗?我没有读过任何地方说你不能这样做,但是当我尝试我的第二个内核时,它返回全零,但没有错误。
我还尝试使用
clEnqueueCopyImage
将第一个内核的输出复制到不同的 Image2d (也是使用
CL_MEM_READ_WRITE
创建的)并将其用作第二个内核的输入,但这也不起作用。 我已经验证了我的第一个内核的输出是正确的。
感谢您的任何见解。
在你的情况下,你不需要模数,因为你知道你总是在边界之外小于nx或在边界之内。
你的解决方案,如果它能按预期工作,速度会一样快,只是除法会让它慢一点。但我认为不会,因为坐标在你的方程中是二次的。