From a95a29828d0ecfeaef4d045de35351b4a9aa9bb6 Mon Sep 17 00:00:00 2001 From: Yifan Zhao <yifanz16@illinois.edu> Date: Sat, 23 Jan 2021 06:36:53 -0600 Subject: [PATCH] Default model-less performance is given by measuring time --- predtuner/torchapp.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/predtuner/torchapp.py b/predtuner/torchapp.py index fbd52b4..cb4a0a7 100644 --- a/predtuner/torchapp.py +++ b/predtuner/torchapp.py @@ -123,16 +123,21 @@ class TorchApp(ModeledApp, abc.ABC): def empirical_measure_qos_perf( self, with_approxes: KnobsT, is_testset: bool ) -> Tuple[float, float]: + from time import time_ns + dataloader = self.test_loader if is_testset else self.val_loader approxed = self._apply_knobs(with_approxes) qoses = [] + + time_begin = time_ns() / (10 ** 9) for inputs, targets in dataloader: inputs = move_to_device_recursively(inputs, self.device) targets = move_to_device_recursively(targets, self.device) outputs = approxed(inputs) qoses.append(self.tensor_to_qos(outputs, targets)) + time_end = time_ns() / (10 ** 9) qos = self.combine_qos(np.array(qoses)) - return float(qos), 0.0 # float64->float + return float(qos), time_end - time_begin # float64->float def __repr__(self) -> str: class_name = self.__class__.__name__ @@ -161,7 +166,9 @@ class TorchApp(ModeledApp, abc.ABC): if last_baseline_knob is None: last_baseline_knob = k else: - raise ValueError(f"Found more than 1 baseline knobs: {last_baseline_knob} and {k}") + raise ValueError( + f"Found more than 1 baseline knobs: {last_baseline_knob} and {k}" + ) if last_baseline_knob is None: knobs.add(BaselineKnob()) return knobs -- GitLab