OpenCL 1.2读/写图像数据

时间:2016-02-08 21:07:55

标签: opencl

我使用标记CL_MEM_READ_WRITE在主机上创建Image2d对象。这个图像是一个内核的输出,我希望它用作不同内核的输入。我还使用cl_image_format = {CL_INTENSITY, CL_FLOAT};

这在OpenCL 1.2中是否可行?我无处可读,说你无法做到这一点,但是当我尝试我的第二个内核返回所有零,但没有错误。

我还尝试使用clEnqueueCopyImage将第一个内核的输出复制到另一个Image2d(也使用CL_MEM_READ_WRITE创建)并将其用作第二个内核的输入,但是也行不通。

我已经验证了我的第一个内核的输出是正确的。

感谢您的任何见解。

1 个答案:

答案 0 :(得分:1)

,来自一个内核的输出图像可以用作后续内核的输入。

只要图片为CL_MEM_READ_WRITE,它就可以在OpenCL 1.x的内核中读取__read_only __write_only

OpenCL 2.0进一步允许图像为__read_write,但必须遵循特殊规则(如障碍)才能获得正确的结果。

有关读/写图像的更多信息,请参阅https://software.intel.com/en-us/articles/using-opencl-20-read-write-images

不要试图欺骗(OpenCL - Pass image2d_t twice to get both read and write from kernel?