在OpenCL中,我的理解是您可以使用该barrier()函数来同步工作组中的线程.我(通常)了解它们的用途以及何时使用它们.我也知道工作组中的所有线程都必须遇到障碍,否则会出现问题.但是,每次我尝试使用障碍到目前为止,它似乎导致我的视频驱动程序崩溃,或者有关访问某种无效内存的错误消息.到目前为止,我已经在2张不同的显卡上看过这个(1个ATI,1个NVIDIA).
所以,我的问题是:
barrier(CLK_LOCAL_MEM_FENCE)和之间有什么区别barrier(CLK_GLOBAL_MEM_FENCE)?我阅读了文档,但对我来说并不清楚.barrier(CLK_LOCAL_MEM_FENCE)vs. 有一般规则barrier(CLK_GLOBAL_MEM_FENCE)吗?barrier()用错误的参数类型调用可能会导致错误?opencl ×1