Browse Source

tests/datawizard/increment_redux.c: force queue synchronisation when finishing codelet

Nathalie Furmento 13 years ago
parent
commit
ecb8e6593f
1 changed files with 7 additions and 0 deletions
  1. 7 0
      tests/datawizard/increment_redux.c

+ 7 - 0
tests/datawizard/increment_redux.c

@@ -87,6 +87,7 @@ static void redux_opencl_kernel(void *descr[], void *arg)
 	h_dst += h_src;
 
 	clEnqueueWriteBuffer(queue, d_dst, CL_TRUE, 0, sizeof(unsigned), (void *)&h_dst, 0, NULL, NULL);
+	clFinish(queue);
 }
 
 static void neutral_opencl_kernel(void *descr[], void *arg)
@@ -100,6 +101,7 @@ static void neutral_opencl_kernel(void *descr[], void *arg)
 	starpu_opencl_get_current_queue(&queue);
 
 	clEnqueueWriteBuffer(queue, d_dst, CL_TRUE, 0, sizeof(unsigned), (void *)&h_dst, 0, NULL, NULL);
+	clFinish(queue);
 }
 #endif
 
@@ -167,6 +169,7 @@ static void increment_opencl_kernel(void *descr[], void *cl_arg __attribute__((u
 	clEnqueueReadBuffer(queue, d_token, CL_TRUE, 0, sizeof(unsigned), (void *)&h_token, 0, NULL, NULL);
 	h_token++;
 	clEnqueueWriteBuffer(queue, d_token, CL_TRUE, 0, sizeof(unsigned), (void *)&h_token, 0, NULL, NULL);
+	clFinish(queue);
 }
 #endif
 
@@ -248,6 +251,7 @@ int main(int argc, char **argv)
 		STARPU_CHECK_RETURN_VALUE(ret, "starpu_data_acquire");
 		if (var != ntasks * (loop+1))
 		{
+			FPRINTF(stderr, "[end of loop] Value %u != Expected value %u\n", var, ntasks * (loop+1));
 			starpu_data_release(handle);
 			starpu_data_unregister(handle);
 			goto err;
@@ -257,7 +261,10 @@ int main(int argc, char **argv)
 
 	starpu_data_unregister(handle);
 	if (var != ntasks * nloops)
+	{
+		FPRINTF(stderr, "Value %u != Expected value %u\n", var, ntasks * (loop+1));
 		goto err;
+	}
 
 	starpu_shutdown();