summaryrefslogtreecommitdiff
path: root/kernels/compiler_device_enqueue.cl
diff options
context:
space:
mode:
Diffstat (limited to 'kernels/compiler_device_enqueue.cl')
-rw-r--r--kernels/compiler_device_enqueue.cl18
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);
+ }
+}