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?)
我正在使用标志 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?)