|
@@ -49,7 +49,6 @@ void memset0_cpu(void *descr[], void *arg)
|
|
|
}
|
|
|
|
|
|
/*Second implementation */
|
|
|
-
|
|
|
void memset_cpu(void *descr[], void *arg)
|
|
|
{
|
|
|
(void)arg;
|
|
@@ -90,26 +89,32 @@ static void test_memset(int nelems, struct starpu_codelet *codelet)
|
|
|
struct starpu_task *task;
|
|
|
|
|
|
// TODO: faire plutôt un tableau[nloops] de handles, et on fait unregister dans une boucle séparée, pour laisser les tâches tourner en parallèle
|
|
|
- starpu_data_handle_t handle;
|
|
|
+ starpu_data_handle_t tab_handle[ntasks];
|
|
|
|
|
|
-
|
|
|
for (loop = 0; loop < ntasks; loop++)
|
|
|
{
|
|
|
task = starpu_task_create();
|
|
|
- starpu_vector_data_register(&handle, -1, (uintptr_t)NULL, nelems, sizeof(int));
|
|
|
+ starpu_vector_data_register(&tab_handle[loop], -1, (uintptr_t)NULL, nelems, sizeof(int));
|
|
|
|
|
|
task->cl = codelet;
|
|
|
task->where = STARPU_CPU;
|
|
|
- task->handles[0] = handle;
|
|
|
+ task->handles[0] = tab_handle[loop];
|
|
|
|
|
|
int ret = starpu_task_submit(task);
|
|
|
if (ret == -ENODEV)
|
|
|
exit(STARPU_TEST_SKIPPED);
|
|
|
STARPU_CHECK_RETURN_VALUE(ret, "starpu_task_submit");
|
|
|
|
|
|
- starpu_data_unregister(handle);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ for (loop = 0; loop < ntasks; loop++)
|
|
|
+ {
|
|
|
+
|
|
|
+ starpu_data_unregister(tab_handle[loop]);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|