OpenCL图像过滤器迭代而不返回主机?

OpenCL图像过滤器迭代而不返回主机?,opencl,Opencl,我面前没有我的代码,但我正在做一个常见的场景,在这个场景中,图像被采样、写入、重复。每次迭代都需要我将结果读回CPU,并再次将其扔回OpenCL。限制是图像要么读要么写,而不是两者都读。是否有一种方法可以在内核中完成所有这些操作,而不是将其循环回CPU?您不需要将结果读回主机,但需要重写算法,以使用带有附加纹理的多个步骤来存储中间结果 您不需要将结果读回主机,但需要重写算法,以使用带有附加纹理的多个步骤来存储中间结果 你可能想进一步澄清你的问题。是什么阻止了您以读写方式创建图像,并以类似乒乓球的

我面前没有我的代码,但我正在做一个常见的场景,在这个场景中,图像被采样、写入、重复。每次迭代都需要我将结果读回CPU,并再次将其扔回OpenCL。限制是图像要么读要么写,而不是两者都读。是否有一种方法可以在内核中完成所有这些操作,而不是将其循环回CPU?

您不需要将结果读回主机,但需要重写算法,以使用带有附加纹理的多个步骤来存储中间结果

您不需要将结果读回主机,但需要重写算法,以使用带有附加纹理的多个步骤来存储中间结果

你可能想进一步澄清你的问题。是什么阻止了您以读写方式创建图像,并以类似乒乓球的方式使用它们(更改每次迭代读取的图像和写入的图像)?无需将结果读回CPU(您是指RAM吗?)。读/写映像的唯一限制是,读取在同一内核调用中写入的数据将返回未定义的结果(请参阅Nvidia OpenCL编程指南)。如果这对您来说是个问题,那么您可以有两个图像,一个用于读取,一个用于写入,并在每次迭代后切换它们。所以请详细说明这一点,到底是什么迫使你涉及到CPU。否则你无法回答这个问题。你可能想进一步澄清你的问题。是什么阻止了您以读写方式创建图像,并以类似乒乓球的方式使用它们(更改每次迭代读取的图像和写入的图像)?无需将结果读回CPU(您是指RAM吗?)。读/写映像的唯一限制是,读取在同一内核调用中写入的数据将返回未定义的结果(请参阅Nvidia OpenCL编程指南)。如果这对您来说是个问题,那么您可以有两个图像,一个用于读取,一个用于写入,并在每次迭代后切换它们。所以请详细说明这一点,到底是什么迫使你涉及到CPU。否则就无法回答这个问题。