Explorar el Código

perf_model: index struct starpu_perfmodel_state::nimpls with combination identifiers

Nathalie Furmento hace 10 años
padre
commit
f7a82c43ff

+ 2 - 2
src/core/perfmodel/perfmodel_history.c

@@ -572,7 +572,7 @@ static void dump_model_file(FILE *f, struct starpu_perfmodel *model)
 			fprintf(f, "%u\n", arch_combs[comb]->devices[dev].ncores);
 		}
 
-		int nimpls = model->state->nimpls[i];
+		int nimpls = model->state->nimpls[comb];
 		fprintf(f, "##########\n");
 		fprintf(f, "# number of implementations\n");
 		fprintf(f, "%u\n", nimpls);
@@ -765,7 +765,7 @@ void _starpu_deinitialize_performance_model(struct starpu_perfmodel *model)
 		for(i=0; i < ncombs; i++)
 		{
 			int comb = model->state->combs[i];
-			int nimpls = model->state->nimpls[i];
+			int nimpls = model->state->nimpls[comb];
 			for(impl = 0; impl < nimpls; impl++)
 			{
 				struct starpu_perfmodel_per_arch *archmodel = &model->state->per_arch[comb][impl];

+ 2 - 2
tests/perfmodels/valid_model.c

@@ -83,7 +83,7 @@ static int submit(struct starpu_codelet *codelet, struct starpu_perfmodel *model
 		for(i = 0; i < lmodel.state->ncombs; i++)
 		{
 			int comb = lmodel.state->combs[i];
-			for(impl = 0; impl < lmodel.state->nimpls[i]; impl++)
+			for(impl = 0; impl < lmodel.state->nimpls[comb]; impl++)
 				old_nsamples += lmodel.state->per_arch[comb][impl].regression.nsample;
 		}
 	}
@@ -117,7 +117,7 @@ static int submit(struct starpu_codelet *codelet, struct starpu_perfmodel *model
 		{
 			int comb = lmodel.state->combs[i];
 			int impl;
-			for(impl = 0; impl < lmodel.state->nimpls[i]; impl++)
+			for(impl = 0; impl < lmodel.state->nimpls[comb]; impl++)
 			     new_nsamples += lmodel.state->per_arch[comb][impl].regression.nsample;
 		}
 	}

+ 4 - 4
tools/starpu_perfmodel_plot.c

@@ -265,7 +265,7 @@ static void display_history_based_perf_models(FILE *gnuplot_file, struct starpu_
 			int impl;
 
 			arch = _starpu_arch_comb_get(comb);
-			for(impl = 0; impl < model->state->nimpls[i]; impl++)
+			for(impl = 0; impl < model->state->nimpls[comb]; impl++)
 			{
 				struct starpu_perfmodel_per_arch *arch_model = &model->state->per_arch[comb][impl];
 				starpu_perfmodel_get_arch_name(arch, arch_name, 32, impl);
@@ -293,7 +293,7 @@ static void display_history_based_perf_models(FILE *gnuplot_file, struct starpu_
 			if (options->comb_is_set == 0 || options->comb == comb)
 			{
 				int impl;
-				for(impl = 0; impl < model->state->nimpls[i]; impl++)
+				for(impl = 0; impl < model->state->nimpls[comb]; impl++)
 				{
 					struct starpu_perfmodel_per_arch *arch_model = &model->state->per_arch[comb][impl];
 					for (ptr = arch_model->list; ptr; ptr = ptr->next)
@@ -317,7 +317,7 @@ static void display_history_based_perf_models(FILE *gnuplot_file, struct starpu_
 			{
 				int impl;
 
-				for(impl = 0; impl < model->state->nimpls[i]; impl++)
+				for(impl = 0; impl < model->state->nimpls[comb]; impl++)
 				{
 					struct starpu_perfmodel_per_arch *arch_model = &model->state->per_arch[comb][impl];
 					for (ptr = arch_model->list; ptr; ptr = ptr->next)
@@ -360,7 +360,7 @@ static void display_all_perf_models(FILE *gnuplot_file, struct starpu_perfmodel
 			int impl;
 
 			arch = _starpu_arch_comb_get(comb);
-			for(impl = 0; impl < model->state->nimpls[i]; impl++)
+			for(impl = 0; impl < model->state->nimpls[comb]; impl++)
 			{
 				struct starpu_perfmodel_per_arch *archmodel = &model->state->per_arch[comb][impl];
 				display_perf_model(gnuplot_file, model, arch, archmodel, comb, impl, first, options);