From b1109923d3897d62a27ac5db1c24bf1e1ecd8a21 Mon Sep 17 00:00:00 2001
From: Maria Kotsifakou <kotsifa2@illinois.edu>
Date: Tue, 8 Oct 2019 19:04:18 -0500
Subject: [PATCH] Changed configuration energy to energy reduction (sorted in
 ascending order)

---
 .../tensor_runtime/include/configuration.h             |  2 +-
 .../tensor_runtime/include/hpvm-rt-controller.h        | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

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 ae1f46ef2b..b482cef537 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 65a34661aa..b510e3849e 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;
-- 
GitLab