OpenCL最佳实践指南(https://www.cs.cmu.edu/afs/cs/academic/class/15668-s11/www/cuda-doc/OpenCL_Best_Practices_Guide.pdf)在3.1.3节中建议使用clFlush
以确保命令以正确的顺序发生,例如,处理不数据传输之前发生:重叠的传输和执行:确保按照正确的顺序执行命令
- 传输的数据队列0
clFlush
的队列0- 运行内核队列0,传输数据的队列1
clFlush
的队列0和队列1- 为队列1运行内核并检索队列0的数据
clFlush
对于它们都是- 检索队列1的数据
这里的答复https://stackoverflow.com/a/12389713/4634819建议使用事件来实现,因为它看起来是相同的。
我的问题是:在这种情况下,我做得对吗?同时做两个事件(避免同时执行),这两个事件都是clFlush
?它们中的哪一个使用是否重要?
谢谢!一切都很清楚:) – vgeclair