diff options
Diffstat (limited to 'kernels/compiler_device_enqueue.cl')
-rw-r--r-- | kernels/compiler_device_enqueue.cl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/kernels/compiler_device_enqueue.cl b/kernels/compiler_device_enqueue.cl new file mode 100644 index 00000000..cb201421 --- /dev/null +++ b/kernels/compiler_device_enqueue.cl @@ -0,0 +1,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); + } +} |