Browse Source

Add missing RMB counterpart for WMB in _starpu_fetch_task_input_cb

Samuel Thibault 5 years ago
parent
commit
cdff93ed6b

+ 1 - 0
src/drivers/cpu/driver_cpu.c

@@ -301,6 +301,7 @@ int _starpu_cpu_driver_run_once(struct _starpu_worker *cpu_worker)
 	if (pending_task != NULL && cpu_worker->nb_buffers_transferred == cpu_worker->nb_buffers_totransfer)
 	{
 		int ret;
+		STARPU_RMB();
 		_STARPU_TRACE_END_PROGRESS(memnode);
 		j = _starpu_get_job_associated_to_task(pending_task);
 

+ 1 - 0
src/drivers/cuda/driver_cuda.c

@@ -825,6 +825,7 @@ int _starpu_cuda_driver_run_once(struct _starpu_worker_set *worker_set)
 		task = worker->task_transferring;
 		if (task && worker->nb_buffers_transferred == worker->nb_buffers_totransfer)
 		{
+			STARPU_RMB();
 			_STARPU_TRACE_END_PROGRESS(memnode);
 			j = _starpu_get_job_associated_to_task(task);
 

+ 1 - 0
src/drivers/mp_common/source_common.c

@@ -927,6 +927,7 @@ static void _starpu_src_common_worker_internal_work(struct _starpu_worker_set *
 		/* We send all buffers to execute the task */
 		if (task != NULL && worker_set->workers[i].nb_buffers_transferred == worker_set->workers[i].nb_buffers_totransfer)
 		{
+			STARPU_RMB();
 			struct _starpu_job * j = _starpu_get_job_associated_to_task(task);
 
 			_STARPU_TRACE_END_PROGRESS(memnode);

+ 1 - 0
src/drivers/opencl/driver_opencl.c

@@ -700,6 +700,7 @@ int _starpu_opencl_driver_run_once(struct _starpu_worker *worker)
 		idle_transfers++;
 	if (task && worker->nb_buffers_transferred == worker->nb_buffers_totransfer)
 	{
+		STARPU_RMB();
 		_STARPU_TRACE_END_PROGRESS(memnode);
 		j = _starpu_get_job_associated_to_task(task);