瀏覽代碼

merge fix

Andra Hugo 12 年之前
父節點
當前提交
6baf2f03c9

+ 0 - 2
src/core/combined_workers.c

@@ -48,10 +48,8 @@ static void sort_workerid_array(int nworkers, int workerid_array[])
  * workerid_array array which has nworkers entries. This function returns
  * the identifier of the combined worker in case of success, a negative value
  * is returned otherwise. */
-
 int starpu_combined_worker_assign_workerid(int nworkers, int workerid_array[])
 {
-	unsigned sched_ctx_id = starpu_get_sched_ctx();
 	int new_workerid;
 
 	/* Return the number of actual workers. */

+ 1 - 1
src/core/dependencies/implicit_data_deps.c

@@ -260,6 +260,7 @@ struct starpu_task *_starpu_detect_implicit_data_deps_with_handle(struct starpu_
 #ifdef STARPU_USE_FXT
 				_starpu_get_job_associated_to_task(new_sync_task)->model_name = "sync_task_redux";
 #endif
+
 				_starpu_add_writer_after_readers(handle, new_sync_task, new_sync_task);
 
 				task = new_sync_task;
@@ -538,4 +539,3 @@ int _starpu_data_wait_until_available(starpu_data_handle_t handle, enum starpu_a
 
 	return 0;
 }
-

+ 0 - 1
src/core/jobs.c

@@ -441,4 +441,3 @@ const char *_starpu_get_model_name(struct _starpu_job *j)
 #endif
         }
 }
-

+ 0 - 1
src/core/jobs.h

@@ -175,4 +175,3 @@ int _starpu_push_local_task(struct _starpu_worker *worker, struct starpu_task *t
 const char *_starpu_get_model_name(struct _starpu_job *j);
 
 #endif // __JOBS_H__
-

+ 1 - 1
src/core/perfmodel/perfmodel.c

@@ -343,7 +343,6 @@ double starpu_task_expected_data_transfer_time(uint32_t memory_node, struct star
 }
 
 /* Return the expected duration of the entire task bundle in µs */
-
 double starpu_task_bundle_expected_length(starpu_task_bundle_t bundle, enum starpu_perf_archtype arch, unsigned nimpl)
 {
 	double expected_length = 0.0;
@@ -368,6 +367,7 @@ double starpu_task_bundle_expected_length(starpu_task_bundle_t bundle, enum star
 			
 		entry = entry->next;
 	}
+
 	_STARPU_PTHREAD_MUTEX_UNLOCK(&bundle->mutex);
 
 	return expected_length;

+ 1 - 1
src/core/perfmodel/perfmodel_bus.c

@@ -243,7 +243,7 @@ static void measure_bandwidth_between_dev_and_dev_cuda(int src, int dst)
 
 	/* Free buffers */
 	cudaFree(d_buffer);
-	starpu_cuda_set_device(src);
+	cudaSetDevice(src);
 	cudaFree(s_buffer);
 
 	cudaThreadExit();

+ 0 - 3
src/core/perfmodel/perfmodel_history.c

@@ -1099,10 +1099,7 @@ double _starpu_history_based_job_expected_perf(struct starpu_perfmodel *model, e
 		/* TODO: report differently if we've scheduled really enough
 		 * of that task and the scheduler should perhaps put it aside */
 		/* Not calibrated enough */
-	{
-//		printf("nan -> nsamples %d\n", entry->nsample);
 		exp = NAN;
-	}
 
 	if (isnan(exp) && !model->benchmarking)
 	{

+ 3 - 22
src/core/sched_policy.c

@@ -70,27 +70,9 @@ static void load_sched_policy(struct starpu_sched_policy *sched_policy, struct _
 
 	}
 #endif
-        struct starpu_sched_policy *policy = sched_ctx->sched_policy;
-
-<<<<<<< .working
-<<<<<<< .working
-	policy->init_sched = sched_policy->init_sched;
-	policy->deinit_sched = sched_policy->deinit_sched;
-	policy->push_task = sched_policy->push_task;
-	policy->pop_task = sched_policy->pop_task;
-	policy->pre_exec_hook = sched_policy->pre_exec_hook;
-	policy->post_exec_hook = sched_policy->post_exec_hook;
-	policy->pop_every_task = sched_policy->pop_every_task;
-	policy->push_task_notify = sched_policy->push_task_notify;
-	policy->policy_name = sched_policy->policy_name;
-	policy->add_workers = sched_policy->add_workers;
-	policy->remove_workers = sched_policy->remove_workers;
-=======
-	memcpy(&policy, sched_policy, sizeof(policy));
->>>>>>> .merge-right.r7640
-=======
-	memcpy(&policy, sched_policy, sizeof(policy));
->>>>>>> .merge-right.r7640
+    struct starpu_sched_policy *policy = sched_ctx->sched_policy;
+
+	memcpy(policy, sched_policy, sizeof(policy));
 }
 
 static struct starpu_sched_policy *find_sched_policy_from_name(const char *policy_name)
@@ -742,4 +724,3 @@ int starpu_push_local_task(int workerid, struct starpu_task *task, int back)
 	return ret;
 }
 
-

+ 0 - 1
src/core/sched_policy.h

@@ -62,4 +62,3 @@ extern struct starpu_sched_policy _starpu_sched_heft_policy;
 
 
 #endif // __SCHED_POLICY_H__
-

+ 0 - 1
src/core/task.h

@@ -74,4 +74,3 @@ starpu_opencl_func_t _starpu_task_get_opencl_nth_implementation(struct starpu_co
 starpu_gordon_func_t _starpu_task_get_gordon_nth_implementation(struct starpu_codelet *cl, unsigned nimpl);
 
 #endif // __CORE_TASK_H__
-

+ 1 - 1
src/core/task_bundle.c

@@ -80,7 +80,7 @@ int starpu_task_bundle_insert(starpu_task_bundle_t bundle, struct starpu_task *t
 		item->next = entry;
 	}
 
-	/* Mark the task as belonging to the bundle */
+	/* Mark the task as belonging the bundle */
 	task->bundle = bundle;
 
 	_STARPU_PTHREAD_MUTEX_UNLOCK(&bundle->mutex);

+ 1 - 92
src/core/topology.c

@@ -1,13 +1,8 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
-<<<<<<< .working
  * Copyright (C) 2009-2012  Université de Bordeaux 1
  * Copyright (C) 2010, 2011, 2012 Centre National de la Recherche Scientifique
  * Copyright (C) 2011  INRIA
-=======
- * Copyright (C) 2009-2012  Université de Bordeaux 1
- * Copyright (C) 2010, 2011, 2012 Centre National de la Recherche Scientifique
->>>>>>> .merge-right.r7640
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -443,25 +438,14 @@ _starpu_init_machine_config (struct _starpu_machine_config *config)
 
 	topology->nworkers = 0;
 	topology->ncombinedworkers = 0;
-<<<<<<< .working
-<<<<<<< .working
 	topology->nsched_ctxs = 0;
-=======
-#ifdef STARPU_USE_OPENCL
-	_starpu_opencl_init();
-#endif
-#ifdef STARPU_USE_CUDA
-	_starpu_init_cuda();
-#endif
->>>>>>> .merge-right.r7640
-=======
+
 #ifdef STARPU_USE_OPENCL
 	_starpu_opencl_init();
 #endif
 #ifdef STARPU_USE_CUDA
 	_starpu_init_cuda();
 #endif
->>>>>>> .merge-right.r7640
 	_starpu_init_topology(config);
 
 	_starpu_initialize_workers_bindid(config);
@@ -508,20 +492,12 @@ _starpu_init_machine_config (struct _starpu_machine_config *config)
 		int worker_idx = topology->nworkers + cudagpu;
 		config->workers[worker_idx].arch = STARPU_CUDA_WORKER;
 		int devid = _starpu_get_next_cuda_gpuid(config);
-<<<<<<< .working
 		enum starpu_perf_archtype arch =
 			(enum starpu_perf_archtype)((int)STARPU_CUDA_DEFAULT + devid);
 		config->workers[worker_idx].devid = devid;
 		config->workers[worker_idx].perf_arch = arch;
 		config->workers[worker_idx].worker_mask = STARPU_CUDA;
 		_starpu_init_sched_ctx_for_worker(config->workers[topology->nworkers + cudagpu].workerid);
-=======
-		enum starpu_perf_archtype arch =
-			(enum starpu_perf_archtype)((int)STARPU_CUDA_DEFAULT + devid);
-		config->workers[worker_idx].devid = devid;
-		config->workers[worker_idx].perf_arch = arch;
-		config->workers[worker_idx].worker_mask = STARPU_CUDA;
->>>>>>> .merge-right.r7640
 		config->worker_mask |= STARPU_CUDA;
 
 		struct handle_entry *entry;
@@ -606,7 +582,6 @@ _starpu_init_machine_config (struct _starpu_machine_config *config)
 			topology->nopenclgpus = openclgpu;
 			break;
 		}
-<<<<<<< .working
 		config->workers[worker_idx].arch = STARPU_OPENCL_WORKER;
 		enum starpu_perf_archtype arch =
 			(enum starpu_perf_archtype)((int)STARPU_OPENCL_DEFAULT + devid);
@@ -614,14 +589,6 @@ _starpu_init_machine_config (struct _starpu_machine_config *config)
 		config->workers[worker_idx].perf_arch = arch;
 		config->workers[worker_idx].worker_mask = STARPU_OPENCL;
 		_starpu_init_sched_ctx_for_worker(config->workers[topology->nworkers + openclgpu].workerid);
-=======
-		config->workers[worker_idx].arch = STARPU_OPENCL_WORKER;
-		enum starpu_perf_archtype arch =
-			(enum starpu_perf_archtype)((int)STARPU_OPENCL_DEFAULT + devid);
-		config->workers[worker_idx].devid = devid;
-		config->workers[worker_idx].perf_arch = arch;
-		config->workers[worker_idx].worker_mask = STARPU_OPENCL;
->>>>>>> .merge-right.r7640
 		config->worker_mask |= STARPU_OPENCL;
 	}
 
@@ -658,7 +625,6 @@ _starpu_init_machine_config (struct _starpu_machine_config *config)
 	unsigned spu;
 	for (spu = 0; spu < config->ngordon_spus; spu++)
 	{
-<<<<<<< .working
 		int worker_idx = topology->nworkers + spu;
 		config->workers[worker_idx].arch = STARPU_GORDON_WORKER;
 		config->workers[worker_idx].perf_arch = STARPU_GORDON_DEFAULT;
@@ -666,14 +632,6 @@ _starpu_init_machine_config (struct _starpu_machine_config *config)
 		config->workers[worker_idx].worker_is_running = 0;
 		config->workers[worker_idx].worker_mask = STARPU_GORDON;
 		_starpu_init_sched_ctx_for_worker(config->workers[topology->nworkers + spu].workerid);
-=======
-		int worker_idx = topology->nworkers + spu;
-		config->workers[worker_idx].arch = STARPU_GORDON_WORKER;
-		config->workers[worker_idx].perf_arch = STARPU_GORDON_DEFAULT;
-		config->workers[worker_idx].id = spu;
-		config->workers[worker_idx].worker_is_running = 0;
-		config->workers[worker_idx].worker_mask = STARPU_GORDON;
->>>>>>> .merge-right.r7640
 		config->worker_mask |= STARPU_GORDON;
 	}
 
@@ -1033,54 +991,6 @@ _starpu_destroy_topology (
 	may_bind_automatically = 0;
 #endif
 }
-<<<<<<< .working
-<<<<<<< .working
-
-=======
-
-void
-starpu_topology_print (FILE *output)
-{
-	struct _starpu_machine_config *config = _starpu_get_machine_config();
-	struct starpu_machine_topology *topology = &config->topology;
-	unsigned core;
-	unsigned worker;
-	unsigned nworkers = starpu_worker_get_count();
-	unsigned ncombinedworkers = topology->ncombinedworkers;
-
-	for (core = 0; core < topology->nhwcpus; core++) {
-		fprintf(output, "core %u\t", core);
-		for (worker = 0;
-		     worker < nworkers + ncombinedworkers;
-		     worker++)
-		{
-			if (worker < nworkers)
-			{
-				if (topology->workers_bindid[worker] == core)
-				{
-					char name[256];
-					starpu_worker_get_name (worker, name,
-								sizeof(name));
-					fprintf(output, "%s\t", name);
-				}
-			}
-			else
-			{
-				int worker_size, i;
-				int *combined_workerid;
-				starpu_combined_worker_get_description(worker, &worker_size, &combined_workerid);
-				for (i = 0; i < worker_size; i++)
-				{
-					if (topology->workers_bindid[combined_workerid[i]] == core)
-						fprintf(output, "comb %u\t", worker-nworkers);
-				}
-			}
-		}
-		fprintf(output, "\n");
-	}
-}
->>>>>>> .merge-right.r7640
-=======
 
 void
 starpu_topology_print (FILE *output)
@@ -1123,4 +1033,3 @@ starpu_topology_print (FILE *output)
 		fprintf(output, "\n");
 	}
 }
->>>>>>> .merge-right.r7640

+ 28 - 7
src/core/workers.c

@@ -1278,6 +1278,10 @@ starpu_driver_run(struct starpu_driver *d)
 
 	switch (d->type)
 	{
+#ifdef STARPU_USE_CPU
+	case STARPU_CPU_WORKER:
+		return _starpu_run_cpu(d);
+#endif
 #ifdef STARPU_USE_CUDA
 	case STARPU_CUDA_WORKER:
 		return _starpu_run_cuda(d);
@@ -1286,7 +1290,6 @@ starpu_driver_run(struct starpu_driver *d)
 	case STARPU_OPENCL_WORKER:
 		return _starpu_run_opencl(d);
 #endif
-	case STARPU_CPU_WORKER:    /* Not supported yet */
 	case STARPU_GORDON_WORKER: /* Not supported yet */
 	default:
 		return -EINVAL;
@@ -1300,12 +1303,18 @@ starpu_driver_init(struct starpu_driver *d)
 
 	switch (d->type)
 	{
+#ifdef STARPU_USE_CPU
+	case STARPU_CPU_WORKER:
+		return _starpu_cpu_driver_init(d);
+#endif
 #ifdef STARPU_USE_CUDA
 	case STARPU_CUDA_WORKER:
 		return _starpu_cuda_driver_init(d);
 #endif
-	case STARPU_CPU_WORKER:    /* Not supported yet */
-	case STARPU_OPENCL_WORKER: /* Not supported yet */
+#ifdef STARPU_USE_OPENCL
+	case STARPU_OPENCL_WORKER:
+		return _starpu_opencl_driver_init(d);
+#endif
 	case STARPU_GORDON_WORKER: /* Not supported yet */
 	default:
 		return -EINVAL;
@@ -1319,12 +1328,18 @@ starpu_driver_run_once(struct starpu_driver *d)
 
 	switch (d->type)
 	{
+#ifdef STARPU_USE_CPU
+	case STARPU_CPU_WORKER:
+		return _starpu_cpu_driver_run_once(d);
+#endif
 #ifdef STARPU_USE_CUDA
 	case STARPU_CUDA_WORKER:
 		return _starpu_cuda_driver_run_once(d);
 #endif
-	case STARPU_CPU_WORKER:    /* Not supported yet */
-	case STARPU_OPENCL_WORKER: /* Not supported yet */
+#ifdef STARPU_USE_OPENCL
+	case STARPU_OPENCL_WORKER:
+		return _starpu_opencl_driver_run_once(d);
+#endif
 	case STARPU_GORDON_WORKER: /* Not supported yet */
 	default:
 		return -EINVAL;
@@ -1338,12 +1353,18 @@ starpu_driver_deinit(struct starpu_driver *d)
 
 	switch (d->type)
 	{
+#ifdef STARPU_USE_CPU
+	case STARPU_CPU_WORKER:
+		return _starpu_cpu_driver_deinit(d);
+#endif
 #ifdef STARPU_USE_CUDA
 	case STARPU_CUDA_WORKER:
 		return _starpu_cuda_driver_deinit(d);
 #endif
-	case STARPU_CPU_WORKER:    /* Not supported yet */
-	case STARPU_OPENCL_WORKER: /* Not supported yet */
+#ifdef STARPU_USE_OPENCL
+	case STARPU_OPENCL_WORKER:
+		return _starpu_opencl_driver_deinit(d);
+#endif
 	case STARPU_GORDON_WORKER: /* Not supported yet */
 	default:
 		return -EINVAL;

+ 0 - 1
src/core/workers.h

@@ -249,4 +249,3 @@ struct _starpu_sched_ctx* _starpu_get_initial_sched_ctx(void);
 int starpu_worker_get_nids_by_type(enum starpu_archtype type, int *workerids, int maxsize);
 
 #endif // __WORKERS_H__
-