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