0
我将一行矩阵与该行的对角线元素的逆矩阵相乘。我用一维并行代码实现了它。所有线程运行这段代码OpenCL数据同步
1.read the principle diagonal element
2.calculate the inverse of that element
3.multiply inverse with the element indexed at the thread id
问题出现时,第i在第i行线程执行步骤3其他线程之前执行步骤1,它改变了原则对角线元素的值之前,其他人可以阅读。
OpenCL是否有像所有线程执行步骤1之后只允许线程执行步骤3的任何障碍?
我不想使用空循环,因为可能会出现最坏情况,当它可以得到 失败。
工作范围只有障碍。如果你的代码只有一个工作组,那么它是可能的,但如果你想在GPU上运行你的代码,它是非常不受欢迎的。 – Jovasa
我正在使用GPU,所有这些线程都是通过一次调用enqueueNDRangeKernel产生的,所以我猜他们是在同一个全局工作组中。 –
不,调用产生K Workitems(全局大小),它们构成每个都有N个工作项(本地大小)的工作区 – Jovasa