OpenCL 1.2 read/write 图像数据

OpenCL 1.2 read/write image data

我正在使用标志 CL_MEM_READ_WRITE 在主机上创建一个 Image2d 对象。此图像是一个内核的输出,我希望将其用作 different 内核的输入。我也在使用 cl_image_format = {CL_INTENSITY, CL_FLOAT};

这在 OpenCL 1.2 中可行吗?我没有读到任何地方说你不能这样做,但是当我尝试我的第二个内核时 returns 全为零,但没有错误。

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

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

感谢您的任何见解。

,一个kernel的输出图像可以作为后续kernel的输入。

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

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

有关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?)