Tuner: better formating

This commit is contained in:
Philippe Tillet
2015-08-28 12:16:22 -04:00
parent 922ae52846
commit 3fa8f3a480
4 changed files with 22 additions and 11 deletions

View File

@@ -15,6 +15,7 @@ from kivy.uix.settings import SettingsWithNoMenu
import isaac as sc
import json
import thread
from time import sleep
from tune.tune import Tuner
from tune.tools import metric_name_of
@@ -40,11 +41,16 @@ class LabelProgressBar:
self.label = label
self.metric_name = metric_name
self.length = length
self.old_percent = 0
def set_prefix(self, prefix):
self.prefix = prefix
self.text_start = self.label.text
def set_finished(self):
self.old_percent = 0
self.label.text += '\n'
def update(self, i, total, x, y, complete=False):
percent = float(i) / total
hashes = '#' * int(round(percent * self.length))
@@ -52,11 +58,12 @@ class LabelProgressBar:
#Format of structures to print
xformat = ','.join(map(str,map(int, x)))
yformat = int(y)
percentformat = int(round(percent * 100))
msg = (self.prefix.ljust(10) + ": [{0}] {1: >3}% [{2} " + self.metric_name + "] ({3})\n").format(hashes + spaces, percentformat, yformat, xformat)
self.label.text = self.text_start + msg
#if complete:
# self.label.text += '\n'
percent = int(round(percent * 100))
msg = (self.prefix.ljust(10) + ": [{0}] {1: >3}% [{2} " + self.metric_name + "] ({3})").format(hashes + spaces, percent, yformat, xformat)
if percent > self.old_percent:
sleep(.01)
self.label.text = self.text_start + msg
self.old_percent = percent
class IsaacScreen(Screen):
@@ -112,7 +119,7 @@ class IsaacApp(App):
def run():
operations = [('blas1', (sc.templates.axpy,)),
('blas2', (sc.templates.ger, sc.templates.gemv_n, sc.templates.gemv_t)),
('blas2', (sc.templates.gemv_n, sc.templates.gemv_t)),
('blas3', (sc.templates.gemm_nn, sc.templates.gemm_tn, sc.templates.gemm_nt, sc.templates.gemm_tt))]
for opclass, optype in operations:
for op in optype:

View File

@@ -13,6 +13,7 @@ from numpy import cumsum
import tools
from tools import profile_execution_failure
from time import sleep
fetch_types = [sc.templates.fetching_policy_type.FETCH_FROM_GLOBAL_CONTIGUOUS,
sc.templates.fetching_policy_type.FETCH_FROM_GLOBAL_STRIDED,

View File

@@ -129,12 +129,13 @@ class Tuner:
##### Exploration #####
for idx, x in enumerate(sizes):
self.progress_bar.set_prefix(', '.join(map(str, x)))
#Skip if saved
if x in X:
row = Y[X.index(x)]
self.progress_bar.update(1, 1, profiles[argmax(row)], max(row), complete=True)
self.progress_bar.update(1, 1, profiles[argmax(row)], max(row))
self.progress_bar.set_finished()
continue
#Check if the current best prediction is not a local optimum
@@ -197,7 +198,8 @@ class Tuner:
#print performance info in case no tuning was done
if not retune:
row = Y[X.index(x)]
self.progress_bar.update(1, 1, profiles[argmax(row)], max(row), complete=True)
self.progress_bar.update(1, 1, profiles[argmax(row)], max(row))
self.progress_bar.set_finished()
##### Exportation #####

View File

@@ -45,6 +45,9 @@ class ProgressBar:
def set_prefix(self, prefix):
self.prefix = prefix
def set_finished(self):
sys.stdout.write("\n")
def update(self, i, total, x, y, complete=False):
percent = float(i) / total
@@ -55,8 +58,6 @@ class ProgressBar:
yformat = int(y)
percentformat = int(round(percent * 100))
sys.stdout.write(("\r" + self.prefix.ljust(10) + ": [{0}] {1: >3}% [{2} " + self.metric_name + "] ({3})").format(hashes + spaces, percentformat, yformat, xformat))
if complete:
sys.stdout.write("\n")
sys.stdout.flush()
if __name__ == "__main__":