在OpenCL中使用一个内核的结果作为另一个内核的输入

5
我已经编写了一段代码,使用API的clCreateImage2D创建空间、clEnqueueWriteImage将图像写入设备、read_imageui在内核中读取图像以及write_imageui将图像写回主机,实现了图像卷积。
现在我想在另一个内核参数中使用指向缓冲区的卷积结果。不需要将结果来回移动到主机和设备上,这种情况是否可行?
如果结果来回移动...我认为会很昂贵。
任何有关此事的帮助都将是无价之宝。
1个回答

8

从主机的角度来看,您应该能够获取缓冲对象,并将其作为参数传递给另一个内核。之后,您只需像处理任何其他缓冲区一样处理它。唯一的技巧是确保在创建缓冲区时,具有足够的读写权限,以便它可以成为内核的输出和输入。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接