Browse Source

Add missing MIC and SCC cases in heteroprio scheduler

Samuel Thibault 9 years ago
parent
commit
ee76388447
2 changed files with 40 additions and 4 deletions
  1. 12 0
      include/schedulers/starpu_heteroprio.h
  2. 28 4
      src/sched_policies/heteroprio.c

+ 12 - 0
include/schedulers/starpu_heteroprio.h

@@ -47,6 +47,12 @@ enum starpu_heteroprio_types
 #ifdef STARPU_USE_OPENCL
 	STARPU_OPENCL_IDX,
 #endif
+#ifdef STARPU_USE_MIC
+	STARPU_MIC_IDX,
+#endif
+#ifdef STARPU_USE_SCC
+	STARPU_SCC_IDX,
+#endif
 // This will be the number of archs
 	STARPU_NB_TYPES
 };
@@ -62,6 +68,12 @@ static const unsigned starpu_heteroprio_types_to_arch[STARPU_NB_TYPES+1] =
 #ifdef STARPU_USE_OPENCL
 	STARPU_OPENCL,
 #endif
+#ifdef STARPU_USE_MIC
+	STARPU_MIC,
+#endif
+#ifdef STARPU_USE_SCC
+	STARPU_SCC,
+#endif
 	0
 };
 

+ 28 - 4
src/sched_policies/heteroprio.c

@@ -161,11 +161,17 @@ static inline void default_init_sched(unsigned sched_ctx_id)
 #ifdef STARPU_USE_CPU
 	starpu_heteroprio_set_nb_prios(sched_ctx_id, STARPU_CPU_IDX, STARPU_MAX_PRIO-STARPU_MIN_PRIO+1);
 #endif
+#ifdef STARPU_USE_CUDA
+	starpu_heteroprio_set_nb_prios(sched_ctx_id, STARPU_CUDA_IDX, STARPU_MAX_PRIO-STARPU_MIN_PRIO+1);
+#endif
 #ifdef STARPU_USE_OPENCL
 	starpu_heteroprio_set_nb_prios(sched_ctx_id, STARPU_OPENCL_IDX, STARPU_MAX_PRIO-STARPU_MIN_PRIO+1);
 #endif
-#ifdef STARPU_USE_CUDA
-	starpu_heteroprio_set_nb_prios(sched_ctx_id, STARPU_CUDA_IDX, STARPU_MAX_PRIO-STARPU_MIN_PRIO+1);
+#ifdef STARPU_USE_MIC
+	starpu_heteroprio_set_nb_prios(sched_ctx_id, STARPU_MIC_IDX, STARPU_MAX_PRIO-STARPU_MIN_PRIO+1);
+#endif
+#ifdef STARPU_USE_SCC
+	starpu_heteroprio_set_nb_prios(sched_ctx_id, STARPU_SCC_IDX, STARPU_MAX_PRIO-STARPU_MIN_PRIO+1);
 #endif
 
 	// Direct mapping
@@ -175,11 +181,17 @@ static inline void default_init_sched(unsigned sched_ctx_id)
 #ifdef STARPU_USE_CPU
 		starpu_heteroprio_set_mapping(sched_ctx_id, STARPU_CPU_IDX, prio, prio);
 #endif
+#ifdef STARPU_USE_CUDA
+		starpu_heteroprio_set_mapping(sched_ctx_id, STARPU_CUDA_IDX, prio, prio);
+#endif
 #ifdef STARPU_USE_OPENCL
 		starpu_heteroprio_set_mapping(sched_ctx_id, STARPU_OPENCL_IDX, prio, prio);
 #endif
-#ifdef STARPU_USE_CUDA
-		starpu_heteroprio_set_mapping(sched_ctx_id, STARPU_CUDA_IDX, prio, prio);
+#ifdef STARPU_USE_MIC
+		starpu_heteroprio_set_mapping(sched_ctx_id, STARPU_MIC_IDX, prio, prio);
+#endif
+#ifdef STARPU_USE_SCC
+		starpu_heteroprio_set_mapping(sched_ctx_id, STARPU_SCC_IDX, prio, prio);
 #endif
 	}
 }
@@ -316,6 +328,18 @@ static void add_workers_heteroprio_policy(unsigned sched_ctx_id, int *workerids,
 				hp->workers_heteroprio[workerid].arch_index = STARPU_OPENCL_IDX;
 				break;
 #endif
+#ifdef STARPU_USE_MIC
+			case STARPU_MIC_WORKER:
+				hp->workers_heteroprio[workerid].arch_type = STARPU_MIC;
+				hp->workers_heteroprio[workerid].arch_index = STARPU_MIC_IDX;
+				break;
+#endif
+#ifdef STARPU_USE_SCC
+			case STARPU_SCC_WORKER:
+				hp->workers_heteroprio[workerid].arch_type = STARPU_SCC;
+				hp->workers_heteroprio[workerid].arch_index = STARPU_SCC_IDX;
+				break;
+#endif
 			default:
 				STARPU_ASSERT(0);
 			}