|
@@ -18,6 +18,14 @@
|
|
|
#include <starpu.h>
|
|
|
#include <starpu_opencl.h>
|
|
|
|
|
|
+#define CHECK_CL_SET_KERNEL_ARG(kernel, n, size, ptr) \
|
|
|
+do { \
|
|
|
+ int err; \
|
|
|
+ err = clSetKernelArg(kernel, n, size, ptr); \
|
|
|
+ if (err != CL_SUCCESS) \
|
|
|
+ STARPU_OPENCL_REPORT_ERROR(err); \
|
|
|
+} while (0)
|
|
|
+
|
|
|
extern struct starpu_opencl_program opencl_code;
|
|
|
|
|
|
void opencl_codelet(void *descr[], void *_args)
|
|
@@ -40,15 +48,13 @@ void opencl_codelet(void *descr[], void *_args)
|
|
|
err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_code, "block", devid);
|
|
|
if (err != CL_SUCCESS) STARPU_OPENCL_REPORT_ERROR(err);
|
|
|
|
|
|
- err = 0;
|
|
|
- err = clSetKernelArg(kernel, 0, sizeof(block), &block);
|
|
|
- err = clSetKernelArg(kernel, 1, sizeof(nx), &nx);
|
|
|
- err = clSetKernelArg(kernel, 2, sizeof(ny), &ny);
|
|
|
- err = clSetKernelArg(kernel, 3, sizeof(nz), &nz);
|
|
|
- err = clSetKernelArg(kernel, 4, sizeof(ldy), &ldy);
|
|
|
- err = clSetKernelArg(kernel, 5, sizeof(ldz), &ldz);
|
|
|
- err = clSetKernelArg(kernel, 6, sizeof(*multiplier), multiplier);
|
|
|
- if (err) STARPU_OPENCL_REPORT_ERROR(err);
|
|
|
+ CHECK_CL_SET_KERNEL_ARG(kernel, 0, sizeof(block), &block);
|
|
|
+ CHECK_CL_SET_KERNEL_ARG(kernel, 1, sizeof(nx), &nx);
|
|
|
+ CHECK_CL_SET_KERNEL_ARG(kernel, 2, sizeof(ny), &ny);
|
|
|
+ CHECK_CL_SET_KERNEL_ARG(kernel, 3, sizeof(nz), &nz);
|
|
|
+ CHECK_CL_SET_KERNEL_ARG(kernel, 4, sizeof(ldy), &ldy);
|
|
|
+ CHECK_CL_SET_KERNEL_ARG(kernel, 5, sizeof(ldz), &ldz);
|
|
|
+ CHECK_CL_SET_KERNEL_ARG(kernel, 6, sizeof(*multiplier), multiplier);
|
|
|
|
|
|
{
|
|
|
size_t global=nx*ny*nz;
|