1
此功能註釋掉的PyOpenCL文檔中:http://documen.tician.de/pyopencl/runtime.html?highlight=enqueue#pyopencl.Event.waitPyOpenCL:什麼是Event.wait()用於?
我的問題是:我要調用內核在一個for循環和之後的每個呼叫排隊的複製操作與pyopencl.enqueue_copy_buffer(dest, src, size)
。首先我用.wait()
(即pyopencl.enqueue_copy_buffer(dest, src, size).wait()
)做了這個,因爲我在一個例子中發現了這個。然後我刪除.wait()
並獲得了非常顯着的加速。
那麼這個函數對於什麼條件可以放棄呢?謝謝。
Aha,所以在我調用內核並在此之後排入緩衝區副本的循環的情況下,我可以不等待wait(),因爲內核調用和複製函數調用按照正確的順序排隊? – Maxim 2012-04-15 16:28:38
是的,只要確保在隊列同步之前不要修改數據(在這種情況下,根據每種情況下的確切時間,數據可能會在修改之前或之後或中間被複制到設備) 。在這之後入侵數據和內核是可以的。 – eudoxos 2012-04-15 17:54:30
非常感謝。 – Maxim 2012-04-15 18:55:39