|
@@ -28,7 +28,15 @@ void scal_opencl_func(void *buffers[], void *_args)
|
|
|
|
|
|
@{
|
|
|
size_t global=n;
|
|
|
- size_t local=n;
|
|
|
+ size_t local;
|
|
|
+ size_t s;
|
|
|
+ cl_device_id device;
|
|
|
+
|
|
|
+ starpu_opencl_get_device(devid, &device);
|
|
|
+ err = clGetKernelWorkGroupInfo (kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(local), &local, &s);
|
|
|
+ if (err != CL_SUCCESS) STARPU_OPENCL_REPORT_ERROR(err);
|
|
|
+ if (local > global) local=global;
|
|
|
+
|
|
|
err = clEnqueueNDRangeKernel(queue, kernel, 1, NULL, &global, &local, 0, NULL, NULL);
|
|
|
if (err != CL_SUCCESS) STARPU_OPENCL_REPORT_ERROR(err);
|
|
|
@}
|