|
@@ -2101,7 +2101,7 @@ float vector[NX];
|
|
|
|
|
|
starpu_data_handle vector_handle;
|
|
|
starpu_vector_data_register(&vector_handle, 0, (uintptr_t)vector, NX,
|
|
|
- sizeof(float));
|
|
|
+ sizeof(vector[0]));
|
|
|
@end smallexample
|
|
|
@end cartouche
|
|
|
|
|
@@ -2147,12 +2147,10 @@ void scal_cpu_func(void *buffers[], void *cl_arg)
|
|
|
unsigned i;
|
|
|
float *factor = cl_arg;
|
|
|
|
|
|
- struct starpu_vector_interface_s *vector = buffers[0];
|
|
|
-
|
|
|
/* length of the vector */
|
|
|
- unsigned n = STARPU_GET_VECTOR_NX(vector);
|
|
|
+ unsigned n = STARPU_GET_VECTOR_NX(buffers[0]);
|
|
|
/* local copy of the vector pointer */
|
|
|
- float *val = (float *)STARPU_GET_VECTOR_PTR(vector);
|
|
|
+ float *val = (float *)STARPU_GET_VECTOR_PTR(buffers[0]);
|
|
|
|
|
|
for (i = 0; i < n; i++)
|
|
|
val[i] *= *factor;
|
|
@@ -2223,12 +2221,11 @@ static __global__ void vector_mult_cuda(float *val, unsigned n,
|
|
|
extern "C" void scal_cuda_func(void *buffers[], void *_args)
|
|
|
@{
|
|
|
float *factor = (float *)_args;
|
|
|
- struct starpu_vector_interface_s *vector = (struct starpu_vector_interface_s *) buffers[0];
|
|
|
|
|
|
/* length of the vector */
|
|
|
- unsigned n = STARPU_GET_VECTOR_NX(vector);
|
|
|
+ unsigned n = STARPU_GET_VECTOR_NX(buffers[0]);
|
|
|
/* local copy of the vector pointer */
|
|
|
- float *val = (float *)STARPU_GET_VECTOR_PTR(vector);
|
|
|
+ float *val = (float *)STARPU_GET_VECTOR_PTR(buffers[0]);
|
|
|
|
|
|
@i{ vector_mult_cuda<<<1,1>>>(val, n, *factor);}
|
|
|
|
|
@@ -2264,16 +2261,15 @@ __kernel void vector_mult_opencl(__global float* val, int nx, float factor)
|
|
|
|
|
|
void scal_opencl_func(void *buffers[], void *_args)
|
|
|
@{
|
|
|
- float *factor = (float *)_args;
|
|
|
- struct starpu_vector_interface_s *vector = (struct starpu_vector_interface_s *) buffers[0];
|
|
|
+ float *factor = _args;
|
|
|
@i{ int id, devid, err;}
|
|
|
@i{ cl_kernel kernel;}
|
|
|
@i{ cl_command_queue queue;}
|
|
|
|
|
|
/* length of the vector */
|
|
|
- unsigned n = STARPU_GET_VECTOR_NX(vector);
|
|
|
+ unsigned n = STARPU_GET_VECTOR_NX(buffers[0]);
|
|
|
/* local copy of the vector pointer */
|
|
|
- float *val = (float *)STARPU_GET_VECTOR_PTR(vector);
|
|
|
+ float *val = (float *)STARPU_GET_VECTOR_PTR(buffers[0]);
|
|
|
|
|
|
@i{ id = starpu_worker_get_id();}
|
|
|
@i{ devid = starpu_worker_get_devid(id);}
|
|
@@ -2284,8 +2280,8 @@ void scal_opencl_func(void *buffers[], void *_args)
|
|
|
|
|
|
@i{ err = 0;}
|
|
|
@i{ err = clSetKernelArg(kernel, 0, sizeof(cl_mem), &val);}
|
|
|
-@i{ err = clSetKernelArg(kernel, 1, sizeof(int), &n);}
|
|
|
-@i{ err |= clSetKernelArg(kernel, 2, sizeof(float), (void*)factor);}
|
|
|
+@i{ err = clSetKernelArg(kernel, 1, sizeof(n), &n);}
|
|
|
+@i{ err |= clSetKernelArg(kernel, 2, sizeof(*factor), factor);}
|
|
|
@i{ if (err) STARPU_OPENCL_REPORT_ERROR(err);}
|
|
|
|
|
|
@i{ @{}
|
|
@@ -2342,7 +2338,7 @@ int main(int argc, char **argv)
|
|
|
|
|
|
starpu_init(NULL); /* @b{Initialising StarPU} */
|
|
|
|
|
|
- vector = (float*)malloc(NX*sizeof(float));
|
|
|
+ vector = malloc(NX*sizeof(vector[0]));
|
|
|
assert(vector);
|
|
|
for(i=0 ; i<NX ; i++) vector[i] = i;
|
|
|
@end smallexample
|
|
@@ -2352,7 +2348,7 @@ int main(int argc, char **argv)
|
|
|
@smallexample
|
|
|
/* @b{Registering data within StarPU} */
|
|
|
starpu_vector_data_register(&vector_handle, 0, (uintptr_t)vector,
|
|
|
- NX, sizeof(float));
|
|
|
+ NX, sizeof(vector[0]));
|
|
|
|
|
|
/* @b{Definition of the task} */
|
|
|
task = starpu_task_create();
|