Quellcode durchsuchen

adapt the Gordon driver to the recent interface changes

Cédric Augonnet vor 16 Jahren
Ursprung
Commit
1ed054f670
1 geänderte Dateien mit 19 neuen und 13 gelöschten Zeilen
  1. 19 13
      src/drivers/gordon/driver_gordon.c

+ 19 - 13
src/drivers/gordon/driver_gordon.c

@@ -88,20 +88,24 @@ static void starpu_to_gordon_buffers(job_t j, struct gordon_ppu_job_s *gordon_jo
 	unsigned nin = 0, ninout = 0, nout = 0;
 	unsigned in = 0, inout = 0, out = 0;
 
+	struct starpu_task *task = j->task;
+	struct starpu_codelet_t *cl = task->cl;
+
 	/* if it is non null, the argument buffer is considered
  	 * as the first read-only buffer */
-	if (j->cl_arg) {
-		gordon_job->buffers[in] = (uint64_t)j->cl_arg;
-		gordon_job->ss[in].size = (uint32_t)j->cl_arg_size;
+	if (task->cl_arg) {
+		gordon_job->buffers[in] = (uint64_t)task->cl_arg;
+		gordon_job->ss[in].size = (uint32_t)task->cl_arg_size;
 		
 		nin++; in++;
 	}
 
 	/* count the number of in/inout/out buffers */
-	for (buffer = 0; buffer < j->nbuffers; buffer++)
+	unsigned nbuffers = cl->nbuffers;
+	for (buffer = 0; buffer < nbuffers; buffer++)
 	{
 		struct starpu_buffer_descr_t *descr;
-		descr = &j->buffers[buffer];
+		descr = &task->buffers[buffer];
 
 		switch (descr->mode) {
 			case R:
@@ -117,11 +121,11 @@ static void starpu_to_gordon_buffers(job_t j, struct gordon_ppu_job_s *gordon_jo
 		}
 	}
 
-	for (buffer = 0; buffer < j->nbuffers; buffer++)
+	for (buffer = 0; buffer < nbuffers; buffer++)
 	{
 		unsigned gordon_buffer;
 		struct starpu_buffer_descr_t *descr;
-		descr = &j->buffers[buffer];
+		descr = &task->buffers[buffer];
 
 		switch (descr->mode) {
 			case R:
@@ -136,7 +140,7 @@ static void starpu_to_gordon_buffers(job_t j, struct gordon_ppu_job_s *gordon_jo
 				break;
 		}
 
-		struct starpu_data_state_t *state = j->buffers[buffer].state;
+		struct starpu_data_state_t *state = task->buffers[buffer].state;
 
 		gordon_job->nalloc = 0;
 		gordon_job->nin = nin;
@@ -162,7 +166,7 @@ static struct gordon_task_wrapper_s *starpu_to_gordon_job(job_t j)
 	task_wrapper->j = j;
 	task_wrapper->terminated = 0;
 
-	gordon_job->index = j->cl->gordon_func;
+	gordon_job->index = j->task->cl->gordon_func;
 
 	/* we should not hardcore the memory node ... XXX */
 	unsigned memory_node = 0;
@@ -173,7 +177,7 @@ static struct gordon_task_wrapper_s *starpu_to_gordon_job(job_t j)
 
 void handle_terminated_job(job_t j)
 {
-	push_codelet_output(j->buffers, j->nbuffers, 0);
+	push_codelet_output(j->task->buffers, j->task->cl->nbuffers, 0);
 	handle_job_termination(j);
 	wake_all_blocked_workers();
 }
@@ -275,7 +279,8 @@ static void gordon_callback_func(void *arg)
 
 int inject_task(job_t j, struct worker_s *worker)
 {
-	int ret = fetch_codelet_input(j->buffers, j->interface, j->nbuffers, 0);
+	struct starpu_task *task = j->task;
+	int ret = fetch_codelet_input(task->buffers, task->interface, task->cl->nbuffers, 0);
 
 	if (ret != 0) {
 		/* there was not enough memory so the codelet cannot be executed right now ... */
@@ -330,10 +335,11 @@ int inject_task_list(struct job_list_s *list, struct worker_s *worker)
 	{
 		int ret;
 
-		ret = fetch_codelet_input(j->buffers, j->interface, j->nbuffers, 0);
+		struct starpu_task *task = j->task;
+		ret = fetch_codelet_input(task->buffers, task->interface, task->cl->nbuffers, 0);
 		STARPU_ASSERT(!ret);
 
-		gordon_jobs[index].index = j->cl->gordon_func;
+		gordon_jobs[index].index = task->cl->gordon_func;
 
 		/* we should not hardcore the memory node ... XXX */
 		unsigned memory_node = 0;