|
@@ -50,6 +50,7 @@ static int current_arch_comb;
|
|
static int nb_arch_combs;
|
|
static int nb_arch_combs;
|
|
static starpu_pthread_rwlock_t arch_combs_mutex;
|
|
static starpu_pthread_rwlock_t arch_combs_mutex;
|
|
static int historymaxerror;
|
|
static int historymaxerror;
|
|
|
|
+static char ignore_devid[STARPU_ANY_WORKER];
|
|
|
|
|
|
|
|
|
|
* consider that calibration will provide a value good enough for scheduling */
|
|
* consider that calibration will provide a value good enough for scheduling */
|
|
@@ -108,7 +109,8 @@ int _starpu_perfmodel_arch_comb_get(int ndevices, struct starpu_perfmodel_device
|
|
for(dev2 = 0; dev2 < ndevices; dev2++)
|
|
for(dev2 = 0; dev2 < ndevices; dev2++)
|
|
{
|
|
{
|
|
if(arch_combs[comb]->devices[dev1].type == devices[dev2].type &&
|
|
if(arch_combs[comb]->devices[dev1].type == devices[dev2].type &&
|
|
- arch_combs[comb]->devices[dev1].devid == devices[dev2].devid &&
|
|
+ (ignore_devid[devices[dev2].type] ||
|
|
|
|
+ arch_combs[comb]->devices[dev1].devid == devices[dev2].devid) &&
|
|
arch_combs[comb]->devices[dev1].ncores == devices[dev2].ncores)
|
|
arch_combs[comb]->devices[dev1].ncores == devices[dev2].ncores)
|
|
nfounded++;
|
|
nfounded++;
|
|
}
|
|
}
|
|
@@ -912,6 +914,11 @@ void _starpu_initialize_registered_performance_models(void)
|
|
STARPU_PTHREAD_RWLOCK_INIT(&arch_combs_mutex, NULL);
|
|
STARPU_PTHREAD_RWLOCK_INIT(&arch_combs_mutex, NULL);
|
|
historymaxerror = starpu_get_env_number_default("STARPU_HISTORY_MAX_ERROR", STARPU_HISTORYMAXERROR);
|
|
historymaxerror = starpu_get_env_number_default("STARPU_HISTORY_MAX_ERROR", STARPU_HISTORYMAXERROR);
|
|
_starpu_calibration_minimum = starpu_get_env_number_default("STARPU_CALIBRATE_MINIMUM", 10);
|
|
_starpu_calibration_minimum = starpu_get_env_number_default("STARPU_CALIBRATE_MINIMUM", 10);
|
|
|
|
+
|
|
|
|
+ ignore_devid[STARPU_CUDA_WORKER] = starpu_get_env_number_default("STARPU_PERF_MODEL_HOMOGENEOUS_CUDA", 0);
|
|
|
|
+ ignore_devid[STARPU_OPENCL_WORKER] = starpu_get_env_number_default("STARPU_PERF_MODEL_IGNORE_HOMOGENEOUS_OPENCL", 0);
|
|
|
|
+ ignore_devid[STARPU_MIC_WORKER] = starpu_get_env_number_default("STARPU_PERF_MODEL_HOMOGENEOUS_MIC", 0);
|
|
|
|
+ ignore_devid[STARPU_SCC_WORKER] = starpu_get_env_number_default("STARPU_PERF_MODEL_HOMOGENEOUS_SCC", 0);
|
|
}
|
|
}
|
|
|
|
|
|
void _starpu_deinitialize_performance_model(struct starpu_perfmodel *model)
|
|
void _starpu_deinitialize_performance_model(struct starpu_perfmodel *model)
|