summaryrefslogtreecommitdiff
path: root/kernels/compiler_device_enqueue.cl
blob: cb201421c639fab06b19c40cc94bc95d619d36eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void block_fn(__global uint* val)
{
  atomic_add(val, get_global_id(0));
}

kernel void compiler_device_enqueue(uint glob_size_arr, __global uint* val)
{
  size_t tid = get_global_id(0);

  for(int i = 0; i < glob_size_arr; i++)
  {
    ndrange_t ndrange = ndrange_1D(glob_size_arr);
    __global uint * v = val + tid;
    void (^kernelBlock)(void) = ^{ block_fn(v); };
    queue_t q = get_default_queue();
    enqueue_kernel(q, CLK_ENQUEUE_FLAGS_WAIT_KERNEL, ndrange, kernelBlock);
  }
}