Просмотр исходного кода

Fix computing footprint for partitioned data

Samuel Thibault лет назад: 4
Родитель
Сommit
657eb12aa4
2 измененных файлов с 9 добавлено и 3 удалено
  1. 4 0
      src/datawizard/filters.c
  2. 5 3
      src/datawizard/interfaces/data_interface.c

+ 4 - 0
src/datawizard/filters.c

@@ -302,6 +302,10 @@ static void _starpu_data_partition(starpu_data_handle_t initial_handle, starpu_d
 			f->filter_func(initial_interface, child_interface, f, i, nparts);
 		}
 
+		/* We compute the size and the footprint of the child once and
+		 * store it in the handle */
+		child->footprint = _starpu_compute_data_footprint(child);
+
 		for (node = 0; node < STARPU_MAXNODES; node++)
 		{
 			if (starpu_node_get_kind(node) != STARPU_CPU_RAM)

+ 5 - 3
src/datawizard/interfaces/data_interface.c

@@ -271,6 +271,10 @@ static void _starpu_register_new_data(starpu_data_handle_t handle,
 
 	handle->active = 1;
 
+	/* Store some values directly in the handle not to recompute them all
+	 * the time. */
+	handle->footprint = _starpu_compute_data_footprint(handle);
+
 	handle->home_node = home_node;
 
 	handle->wt_mask = wt_mask;
@@ -450,9 +454,7 @@ int _starpu_data_handle_init(starpu_data_handle_t handle, struct starpu_data_int
 	//handle->per_worker = NULL;
 	//handle->ops above
 
-	/* Store some values directly in the handle not to recompute them all
-	 * the time. */
-	handle->footprint = _starpu_compute_data_footprint(handle);
+	//handle->footprint
 
 	//handle->home_node
 	//handle->wt_mask