Skip to content
Snippets Groups Projects
Commit 88f1eff4 authored by Hashim Sharif's avatar Hashim Sharif
Browse files

Adding script for running and prunig bad(high loss) knobs

parent 8694ed7c
No related branches found
No related tags found
No related merge requests found
import utils
import subprocess
def createPromiseFile(l_knob, layer_ind, num_layers):
f = open("promise_flags", "w+")
for i in range(num_layers):
if i == layer_ind:
f.write(str(l_knob) + "\n")
else:
f.write("11\n")
f.close()
def runBinary(binary_path):
run_cmd = "./" + binary_path
print (run_cmd)
p = subprocess.Popen(run_cmd, shell=True)
p.wait()
return utils.readAccuracy("final_accuracy")
def getPrunedKnobs(binary_path, layer_file, global_knobs_file, \
baseline_acc, acc_slack):
knobs = utils.getInstallAndDevKnobs(layer_file, \
global_knobs_file)
pruned_knobs = []
num_layers = len(knobs)
layer_ind = 0
for layer_knobs in knobs:
pruned_layer_knobs = []
for l_knob in layer_knobs:
createPromiseFile(l_knob, layer_ind, num_layers)
accuracy = runBinary(binary_path)
acc_loss = baseline_acc - accuracy
if acc_loss > acc_slack:
pruned_layer_knobs.append(l_knob)
pruned_knobs.append(pruned_layer_knobs)
layer_ind += 1
print ("*** knobs = ", knobs)
if __name__ == "__main__":
pruned_knobs = getPrunedKnobs("alexnet2_promise", "../autotuner/data/alexnet2/alexnet2_layers.txt", \
"../autotuner/data/global_knobs.txt", 84.5, 3)
print ("*** pruned_knobs = ", pruned_knobs)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment