diff --git a/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/configuration.h b/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/configuration.h index ae1f46ef2b6cff8731cf66fe1461a1d89c57f534..b482cef5377e0f879b43f06a7ebbfbe01b39be09 100644 --- a/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/configuration.h +++ b/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/configuration.h @@ -188,7 +188,7 @@ struct ConfigurationLessThan_SP { // (for std lower bound, used in pareto optimal frontier search) struct ConfigurationLessThan_E { bool operator()(const struct Configuration *a, const float &b) const { - return (a->energy > b) ; + return (a->energy < b) ; } }; diff --git a/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/hpvm-rt-controller.h b/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/hpvm-rt-controller.h index 65a34661aaacc8886a79d0e9ab2ee1d272b5a112..b510e3849e62d4cdb316875346b87bb1d3715215 100644 --- a/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/hpvm-rt-controller.h +++ b/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/hpvm-rt-controller.h @@ -650,7 +650,7 @@ void RuntimeController::computeParetoConfigurationPoints() { float sp = -1.0; //FLT_MIN unsigned sp_idx = 0; - float en = 100000.0; //FLT_MAX + float en = -1.0; //FLT_MIN unsigned en_idx = 0; for (unsigned i = start_idx; i < end_idx; i++) { @@ -658,7 +658,7 @@ void RuntimeController::computeParetoConfigurationPoints() { sp = InitialConfigurations[i].speedup; sp_idx = i; } - if (InitialConfigurations[i].energy < en) { + if (InitialConfigurations[i].energy > en) { en = InitialConfigurations[i].energy; en_idx = i; } @@ -690,7 +690,7 @@ void RuntimeController::computeParetoConfigurationPoints() { bool en_notDominated = true; if (!EnergyConfigurations.empty()) { - if (EnergyConfigurations.back()->energy <= en) + if (EnergyConfigurations.back()->energy >= en) en_notDominated = false; } @@ -764,7 +764,7 @@ void RuntimeController::compute3DParetoConfigurationPoints() { bool dominated = false; for (unsigned j = i+1; (j < end_idx) && !dominated; j++) { if ((InitialConfigurations[i].speedup < InitialConfigurations[j].speedup) && - (InitialConfigurations[i].energy > InitialConfigurations[j].energy)) { + (InitialConfigurations[i].energy < InitialConfigurations[j].energy)) { dominated = true; } } @@ -786,7 +786,7 @@ void RuntimeController::compute3DParetoConfigurationPoints() { bool notDominated = true; for (unsigned i = 0; (i < ThreeDCurveConfigurations.size()) && notDominated; i++) { if ((CandidateConfiguration.speedup <= ThreeDCurveConfigurations[i]->speedup) && - (CandidateConfiguration.energy >= ThreeDCurveConfigurations[i]->energy)) { + (CandidateConfiguration.energy <= ThreeDCurveConfigurations[i]->energy)) { // This configuration is not better, in at least one characteristic, // compared to the existing ones in the curve. notDominated = false;