使用OpenCL的GPU线程同步多核CPU线程

Har*_*son 9 multithreading gpu opencl

我一直在与使用OpenCL的多核CPU线程进行GPU线程同步.我确实看到了一些CUDA示例,但是,如果有人能够在OpenCL方面给我一些关于同步部分的提示,我会更清楚这个概念.提前感谢您对此事的任何帮助.

hus*_*sik 1

大卫·埃尔曼 (David Ehrmann) 的说法是正确的。我只是想补充几个案例:

  • cpu设备中的障碍非常慢,减速效果甚至超过了cpu和gpu之间的加速比(至少对于中端amd桌面cpu和低端intel移动cpu来说)
  • 如果工作组中的任何工作项都没有遇到障碍,那么他们就不必遇到障碍。一个例子是工作组级别的内核提前退出,其中图像以棋盘方式处理(或不处理),这使得交替的工作组处理或不处理。(是的,这是低效的,但更复杂的工作组选择算法可以这种方式很容易,因为某些参数或数据在编译时是未知的)
  • 原子函数不是障碍。他们只是访问更新的(由其他工作项原子地)内存单元并原子地更新它。