Skip to content
Snippets Groups Projects
Commit dff99ab6 authored by Elizabeth's avatar Elizabeth
Browse files

Fixed errors when writing configuration

parent 26fca261
No related branches found
No related tags found
No related merge requests found
...@@ -181,17 +181,19 @@ class Driver: ...@@ -181,17 +181,19 @@ class Driver:
line = config_file.readline().strip() line = config_file.readline().strip()
while line != "-----": while line != "-----":
layer_as_lst = line.split(' ')
layer_results = []
# Skip softmax # Skip softmax
if line.find("softmax") != -1: if line.find("softmax") != -1:
layer_results.append((0, 0, ' '.join(layer_as_lst[2:])))
curr_conf_results.append((layer_as_lst[1], layer_results))
line = config_file.readline().strip() line = config_file.readline().strip()
continue continue
layer_as_lst = line.split(' ')
layer_ind = int(layer_as_lst[0]) - 1 layer_ind = int(layer_as_lst[0]) - 1
layer_table_data = self.__tensor_layers[layer_ind] layer_table_data = self.__tensor_layers[layer_ind]
layer_name = layer_table_data["Name"] layer_name = layer_table_data["Name"]
layer_results = []
if Driver.is_promise(layer_as_lst[1]): if Driver.is_promise(layer_as_lst[1]):
print("Running layer %s on PROMISE" % layer_name) print("Running layer %s on PROMISE" % layer_name)
curr_layer = Driver.PrecisionTypes.PROMISE curr_layer = Driver.PrecisionTypes.PROMISE
...@@ -206,7 +208,7 @@ class Driver: ...@@ -206,7 +208,7 @@ class Driver:
time, energy = self.__run_promise_simulation(param_val, layer_table_data) time, energy = self.__run_promise_simulation(param_val, layer_table_data)
total_time += time total_time += time
total_energy += energy total_energy += energy
layer_results.append((total_time, total_energy, ' '.join(layer_as_lst[1:]))) layer_results.append((total_time, total_energy, ' '.join(layer_as_lst[2:])))
elif Driver.is_gpu(layer_as_lst[1]): elif Driver.is_gpu(layer_as_lst[1]):
print("Running layer %s on the GPU" % layer_name) print("Running layer %s on the GPU" % layer_name)
...@@ -247,7 +249,7 @@ class Driver: ...@@ -247,7 +249,7 @@ class Driver:
line = config_file.readline().strip() line = config_file.readline().strip()
prev_layer = curr_layer prev_layer = curr_layer
curr_conf_results.append(layer_results) curr_conf_results.append((layer_as_lst[1], layer_results))
self.__conf_results.append( (first_line, curr_conf_results) ) self.__conf_results.append( (first_line, curr_conf_results) )
line = config_file.readline().strip() line = config_file.readline().strip()
...@@ -375,12 +377,15 @@ class Driver: ...@@ -375,12 +377,15 @@ class Driver:
new_header = [conf_name] new_header = [conf_name]
new_header.append(repr(time_speedup)) new_header.append(repr(time_speedup))
new_header.append(repr(energy_speedup)) new_header.append(repr(energy_speedup))
new_header.append(first_line_lst[-1]) new_header.append(repr(abs(float(first_line_lst[-2]))))
new_header.append(first_line_lst[-2]) new_header.append(repr(abs(float(first_line_lst[-1]))))
conf_str.append(' '.join(new_header)) conf_str.append(' '.join(new_header))
for ind, layer in enumerate(layers): for ind, (hardware, layer) in enumerate(layers):
print(layer)
layer_lst = [str(ind + 1)] layer_lst = [str(ind + 1)]
layer_lst.append(hardware)
print(layer_lst)
for op_time, op_energy, tensor_op in layer: for op_time, op_energy, tensor_op in layer:
layer_lst.append(tensor_op) layer_lst.append(tensor_op)
conf_str.append(' '.join(layer_lst)) conf_str.append(' '.join(layer_lst))
...@@ -392,7 +397,8 @@ class Driver: ...@@ -392,7 +397,8 @@ class Driver:
def get_baseline_times_energies(conf): def get_baseline_times_energies(conf):
curr_time = curr_energy = 0 curr_time = curr_energy = 0
for layer in conf[1]: print("RESULTS: ", conf[1])
for hardware, layer in conf[1]:
for op_time, op_energy, tensor_op in layer: for op_time, op_energy, tensor_op in layer:
curr_time += op_time curr_time += op_time
curr_energy += op_energy curr_energy += op_energy
...@@ -403,7 +409,7 @@ class Driver: ...@@ -403,7 +409,7 @@ class Driver:
final_conf = [] # List (conf) of lists (layers) of tuples (operation data) final_conf = [] # List (conf) of lists (layers) of tuples (operation data)
for layer_ind, layer in enumerate(curr_conf[1]): for layer_ind, (hardware, layer) in enumerate(curr_conf[1]):
final_conf_layer = [] final_conf_layer = []
for tensor_ind, (op_time, op_energy, tensor_op) in enumerate(layer): for tensor_ind, (op_time, op_energy, tensor_op) in enumerate(layer):
...@@ -433,23 +439,19 @@ class Driver: ...@@ -433,23 +439,19 @@ class Driver:
conf_index = 0 conf_index = 0
print("RESULTS") print("RESULTS")
#print(self.__conf_results)
for line in config_file: for line in config_file:
if line.startswith("conf"): if line.startswith("conf"):
orig_line_lst = line.split(' ') orig_line_lst = line.split(' ')
conf_name = orig_line_lst[0] conf_name = orig_line_lst[0]
if not baseline_conf: if not baseline_conf:
baseline_conf = self.__conf_results[conf_index] #conf_name] baseline_conf = self.__conf_results[conf_index] #conf_name]
baseline_total_time, baseline_total_energy = get_baseline_times_energies(baseline_conf) baseline_total_time, baseline_total_energy = get_baseline_times_energies(baseline_conf)
results_file.write("%s %s\n" % (repr(baseline_total_time), repr(baseline_total_energy))) # write baseline time to top of file results_file.write("%s\n" % repr(baseline_total_time))
write_conf_to_file(conf_name, baseline_conf, 1, 1) write_conf_to_file(conf_name, baseline_conf, 1, 1)
else: else:
curr_conf = self.__conf_results[conf_index] #conf_name] curr_conf = self.__conf_results[conf_index] #conf_name]
final_time, final_energy = get_baseline_times_energies(curr_conf) final_time, final_energy = get_baseline_times_energies(curr_conf)
#final_time, final_energy, curr_conf = get_final_times_energies_conf(curr_conf)
#assert(final_time <= baseline_total_time)
#assert(final_energy <= baseline_total_energy)
#write_conf_to_file(conf_name, curr_conf, final_time, final_energy)
write_conf_to_file(conf_name, curr_conf, baseline_total_time / final_time, baseline_total_energy / final_energy) write_conf_to_file(conf_name, curr_conf, baseline_total_time / final_time, baseline_total_energy / final_energy)
conf_index += 1 conf_index += 1
results_file.close() results_file.close()
......
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