diff --git a/hpvm/test/dnn_benchmarks/benchmarks/run_dnn_pred.py b/hpvm/test/dnn_benchmarks/benchmarks/run_dnn_pred.py new file mode 100644 index 0000000000000000000000000000000000000000..0ee963173781251d25f44d4f766a9498c506460d --- /dev/null +++ b/hpvm/test/dnn_benchmarks/benchmarks/run_dnn_pred.py @@ -0,0 +1,125 @@ +import os.path +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 + with open(config_file, "r") as f: + for line in f: + if "conf" in line: + num_configs = num_configs + 1 + return (num_configs + 1) + + +def read_and_write_config (config_file, config_num, temp_file): + config = "" + with open(config_file, "r") as f: + conf = "conf" + str(config_num) + read_config = False + read_first_line = False + for line in f: + if read_first_line == False: + config = config + line + read_first_line = True + continue + if "-----" in line and read_config == True: + read_config = False + config = config + line + break + if read_config == True: + config = config + line + continue + if conf in line: + read_config = True + config = config + "+++++\n" + config = config + line + print("config: ") + print(config) + with open(temp_file, "w") as f: + f.write(config) + + +def predictive_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 + 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) + config_num = 1 + 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_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() + diff --git a/hpvm/test/dnn_benchmarks/benchmarks/run_dnns_pred.py b/hpvm/test/dnn_benchmarks/benchmarks/run_dnns_pred.py new file mode 100644 index 0000000000000000000000000000000000000000..f401b670b2bd8e8f3b0db09e9042d2c70d09c229 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/benchmarks/run_dnns_pred.py @@ -0,0 +1,20 @@ +import os +import sys + +#dnns = "alexnet alexnet2 vgg16_cifar10 vgg16_cifar100 resnet18 mobilenet lenet_mnist" +dnns = "alexnet" + +cur_dir = "/home/akashk4/merge/profiling/approxhpvm/temp/hpvm/llvm/test/VISC/DNN_Benchmarks/benchmarks" + +if sys.argv[1] == "--runtime_tuning": + exec_command = "python3 run_dnn_pred.py" + " --runtime_tuning " + cur_dir + " " + dnns + print(exec_command) + os.system(exec_command) +elif sys.argv[1] == "--predictive_tuning": + exec_command = "python3 run_dnn_pred.py" + " --predictive_tuning " + cur_dir + " " + dnns + print(exec_command) + os.system(exec_command) +else: + print("Error: Use --runtime_tuning or --predictive_tuning flags!") + sys.exit() +