此函数在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()
并获得了非常显着的加速。
那么这个功能在什么条件下可以放弃?感谢。
答案 0 :(得分:4)
.wait()
将等待操作完成。如果您的代码可以在没有完成(甚至启动)的情况下继续进行,您可以将其删除。请注意,这与队列中的操作顺序无关:它们将按照您排队的顺序执行(除非您使用无序队列)。