1

PyOpenCL 文档中未注释此函数:http ://documen.tician.de/pyopencl/runtime.html?highlight=enqueue#pyopencl.Event.wait

我的问题是:我必须在 for 循环中调用内核,并在每次调用后将复制操作与pyopencl.enqueue_copy_buffer(dest, src, size). 首先,我使用.wait()附加的 (ie pyopencl.enqueue_copy_buffer(dest, src, size).wait()) 执行此操作,因为我在示例中找到了这一点。然后我删除.wait()并获得了非常显着的加速。

那么这个功能有什么用,在什么情况下可以放弃呢?谢谢。

4

1 回答 1

4

.wait()将等待操作完成。如果您的代码可以在没有完成(甚至开始)的情况下继续进行,您可以将其省略。请注意,这与队列中的操作顺序无关:它们将按照您将它们排入队列的顺序一个接一个地执行(除非您使用乱序队列)。

于 2012-04-15T16:19:17.663 回答