int *c) { const int i = get_global_id(0); const int av = a[i]; const int bv = b[i]; barrier(CLK_LOCAL_MEM_FENCE); c[i] = av + bv; } Workitem 0 ld ld add st Workitem 1 ld ld add st ・・・ Workitem N-1 ld ld add st barrier t
loop(__global const int *src, __global int *dst) { const int i = get_global_id(0); int accum = 0; for (uint j=0; j<N; ++j) { accum += src[N * i + j]; } dst[i] = accum; }