【发布时间】:2011-10-16 22:42:28
【问题描述】:
在OpenCL中,我的理解是可以使用barrier()函数来同步工作组中的线程。我确实(通常)了解它们的用途以及何时使用它们。我也知道工作组中的所有线程都必须遇到障碍,否则会出现问题。但是,到目前为止,每次我尝试使用障碍时,似乎都会导致我的视频驱动程序崩溃,或者出现有关访问某种无效内存的错误消息。到目前为止,我已经在 2 个不同的显卡(1 个 ATI,1 个 NVIDIA)上看到了这一点。
所以,我的问题是:
- 知道为什么会发生这种情况吗?
-
barrier(CLK_LOCAL_MEM_FENCE)和barrier(CLK_GLOBAL_MEM_FENCE)有什么区别?我阅读了文档,但我并不清楚。 - 是否有关于何时使用
barrier(CLK_LOCAL_MEM_FENCE)和barrier(CLK_GLOBAL_MEM_FENCE)的一般规则? - 是否曾经使用错误的参数类型调用
barrier()会导致错误?
【问题讨论】:
标签: opencl