From 844db0fadbd0894db18c39aea94c4b85d6d3c219 Mon Sep 17 00:00:00 2001
From: Yifan Zhao <yifanz16@illinois.edu>
Date: Tue, 2 Feb 2021 07:05:38 -0600
Subject: [PATCH] Added more info to metadata

---
 .../torch2hpvm/torch2hpvm/approxknobs.json     |  3 ++-
 hpvm/projects/torch2hpvm/torch2hpvm/compile.py | 18 ++++++++++++++----
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/hpvm/projects/torch2hpvm/torch2hpvm/approxknobs.json b/hpvm/projects/torch2hpvm/torch2hpvm/approxknobs.json
index 974b536c48..9d7cb28a8b 100644
--- a/hpvm/projects/torch2hpvm/torch2hpvm/approxknobs.json
+++ b/hpvm/projects/torch2hpvm/torch2hpvm/approxknobs.json
@@ -2,7 +2,8 @@
     {
         "name": "11",
         "speedup": 1.0,
-        "applies_to": null
+        "applies_to": null,
+        "is_baseline": true
     },
     {
         "name": "12",
diff --git a/hpvm/projects/torch2hpvm/torch2hpvm/compile.py b/hpvm/projects/torch2hpvm/torch2hpvm/compile.py
index cc2a670dad..5e27224298 100644
--- a/hpvm/projects/torch2hpvm/torch2hpvm/compile.py
+++ b/hpvm/projects/torch2hpvm/torch2hpvm/compile.py
@@ -98,14 +98,21 @@ class ModelExporter:
         KnobInfoT = Tuple[str, float]
         ty_knobs: Dict[str, List[KnobInfoT]] = defaultdict(list)
         default_knobs: List[KnobInfoT] = []
+        baseline_knob = None
         for k in knobs:
-            applies_to = k.pop("applies_to")
-            k = k["name"], k["speedup"]
+            kp = k["name"], k["speedup"]
+            if "is_baseline" in k:
+                if baseline_knob:
+                    raise ValueError("Multiple baseline knobs")
+                baseline_knob = k["name"]
+            applies_to = k["applies_to"]
             if applies_to is None:
-                default_knobs.append(k)
+                default_knobs.append(kp)
                 continue
             for ty in applies_to:
-                ty_knobs[ty].append(k)
+                ty_knobs[ty].append(kp)
+        if not baseline_knob:
+            raise ValueError("No baseline knob given")
         idx = 0
         op_cost: Dict[str, int] = {}
         op_knobs: Dict[str, List[str]] = {}
@@ -127,6 +134,9 @@ class ModelExporter:
                     "op_cost": op_cost,
                     "knob_speedup": knob_speedup,
                     "op_knobs": op_knobs,
+                    "baseline_knob": baseline_knob,
+                    "tune_args": "tune",
+                    "test_args": "test"
                 },
                 f,
                 indent=2,
-- 
GitLab