为什么程序没有’;如果IF回路中包含CL_LOCAL_MeM_围栏,则不工作 while(大小!=0) { 如果在OpenCL中(local_id
,则工作组中的所有工作项必须执行每种类型相同数量的屏障。当一个工作项遇到第一道屏障时,它将等待所有其他工作项到达第一道屏障;当它到达第二道屏障时,它将等待所有其他工作项到达第二道屏障,依此类推 如果在条件(If,switch,…)块中有一个栅栏,这通常意味着所有工作项上的条件必须相同,如果在循环中有栅栏(for,while,do等),则所有工作项必须运行相同的迭代次数 从技术上讲,代码中的特定界限在哪里并不重要(即,条件的if和else部分都可能有障碍),但遵循这些规则有助于可读性。在“if”中只有求和。为什么程序没有’;如果IF回路中包含CL_LOCAL_MeM_围栏,则不工作 while(大小!=0) { 如果在OpenCL中(local_id,opencl,Opencl,,则工作组中的所有工作项必须执行每种类型相同数量的屏障。当一个工作项遇到第一道屏障时,它将等待所有其他工作项到达第一道屏障;当它到达第二道屏障时,它将等待所有其他工作项到达第二道屏障,依此类推 如果在条件(If,switch,…)块中有一个栅栏,这通常意味着所有工作项上的条件必须相同,如果在循环中有栅栏(for,while,do等),则所有工作项必须运行相同的迭代次数 从技术上讲,代码中的特定界限在哪里并不重要(即,条件的if和else部分都可能有障碍),但遵循这些规则有助于可读性。在“if”中
while ( size!=0)
{
if(local_id<size)
local_sums[local_id] += local_sums[local_id+size];
work_group_barrier(clk_local_mem_fence)
size = size/2;
}