PyOpenCL:什么是Event.wait()?

时间:2012-04-15 16:16:36

标签: wait pyopencl

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

我的问题是:我必须在for循环中调用内核,并在每次调用后使用pyopencl.enqueue_copy_buffer(dest, src, size)将复制操作排入队列。首先我添加了.wait()(即pyopencl.enqueue_copy_buffer(dest, src, size).wait()),因为我在一个例子中找到了这个。然后我删除了.wait()并获得了非常显着的加速。

那么这个功能在什么条件下可以放弃?感谢。

1 个答案:

答案 0 :(得分:4)

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