From 4a89ac27105f472d0b1bf78e1a548917d08a84c7 Mon Sep 17 00:00:00 2001 From: Akash Kothari <akashk4@tyler.cs.illinois.edu> Date: Tue, 15 Dec 2020 11:17:01 -0600 Subject: [PATCH] Automating runtime tuning benchmark runs --- .../DNN_Benchmarks/benchmarks/run_dnn_pred.py | 66 +++++++++++++++++-- 1 file changed, 60 insertions(+), 6 deletions(-) diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/run_dnn_pred.py b/llvm/test/VISC/DNN_Benchmarks/benchmarks/run_dnn_pred.py index cd24dd6ecb..0ee9631737 100644 --- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/run_dnn_pred.py +++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/run_dnn_pred.py @@ -3,6 +3,11 @@ from os import path import sys temp_file_name = "temp.txt" +pred_binary_suffix = "_pred_loop_wrapperapi_linked" + +rt_binary_suffix = "_loop_wrapperapi_linked" +max_num_runs = 20 + def max_num_configs (config_file): num_configs = 0 @@ -41,22 +46,24 @@ def read_and_write_config (config_file, config_num, temp_file): f.write(config) -if __name__ == "__main__": +def predictive_tuning_exec(): num_args = len(sys.argv) binary_files = list() - bench_dir = sys.argv[1] + bench_dir = sys.argv[2] print(bench_dir) - arg = 2 + arg = 3 while arg < num_args: binary_files.append(sys.argv[arg]) arg = arg + 1 - + for dnn_name in binary_files: binary_dir = bench_dir + "/" + dnn_name + binary_name = binary_dir + pred_binary_suffix pred_dir = binary_dir + "/predictive" config_file = pred_dir + "/" + dnn_name + ".txt" temp_file = pred_dir + "/" + temp_file_name print("binary_dir: " + binary_dir) + print("binary name: " + binary_name) print("pred_dir: " + pred_dir) print("config_file: " + config_file) print("temp_file: " + temp_file) @@ -64,8 +71,55 @@ if __name__ == "__main__": max_configs = max_num_configs(config_file) while config_num < max_configs: read_and_write_config(config_file, config_num, temp_file) - exec_command = binary_dir + " " + temp_file + exec_command = binary_name print(exec_command) os.system(exec_command) config_num = config_num + 1 - + + +def runtime_tuning_exec(): + num_args = len(sys.argv) + binary_files = list() + bench_dir = sys.argv[2] + print(bench_dir) + arg = 3 + while arg < num_args: + binary_files.append(sys.argv[arg]) + arg = arg + 1 + + for dnn_name in binary_files: + binary_dir = bench_dir + "/" + dnn_name + binary_name = binary_dir + rt_binary_suffix + conf_dir = binary_dir + "/data" + print("binary_dir: " + binary_dir) + print("binary name: " + binary_name) + run = 0 + while run < max_num_runs: + exec_command = binary_name + print(exec_command) + os.system(exec_command) + exec_command = "/home/nvidia/poll 13" + print(exec_command) + os.system(exec_command) + exec_command = "mv " + conf_dir + "/profile_info_0.txt " + conf_dir + "/profile_info_out-run-" + str(run) + ".txt" + print(exec_command) + os.system(exec_command) + run = run + 1 + exec_command = "rm -rf " + conf_dir + "/run_data" + print(exec_command) + os.system(exec_command) + exec_command = "mkdir " + conf_dir + "/run_data" + print(exec_command) + os.system(exec_command) + + + +if __name__ == "__main__": + if sys.argv[1] == "--runtime_tuning": + runtime_tuning_exec() + elif sys.argv[1] == "--predictive_tuning": + predictive_tuning_exec() + else: + print("Error: Use --runtime_tuning or --predictive_tuning flags!") + sys.exit() + -- GitLab