Skip to content
Snippets Groups Projects
Commit 152c1006 authored by hashimsharif's avatar hashimsharif
Browse files

Add scripts for running benchmarks and change CMake file

parent fe5a467f
No related branches found
No related tags found
No related merge requests found
......@@ -118,10 +118,20 @@ foreach(dir ${entries})
-quantization-levels-filename=${dir}/data/quant_ranges_rt.txt
-configuration-inputs-filename=${dir}/data/tuner_confs.txt
)
set(
loop_extra_flags_temp
-dfg2llvm-wrapperapi
-quantization-levels-filename=${dir}/data/quant_ranges_rt.txt
-configuration-inputs-filename=${dir}/predictive/temp.txt
)
compile_single_benchmark(
"test_${dirname}_loop" ${dir}/${dirname}_loop.cpp
LLVMDFG2LLVM_WrapperAPI "${loop_extra_flags}"
)
compile_single_benchmark(
"test_${dirname}_pred" ${dir}/${dirname}_loop.cpp
LLVMDFG2LLVM_WrapperAPI "${loop_extra_flags_temp}"
)
endforeach(dir)
message(STATUS "List of test dnn benchmarks: ${test_compile_targets}")
add_custom_target(dnn_benchmarks DEPENDS ${test_compile_targets})
......
76.599998
\ No newline at end of file
This diff is collapsed.
import os.path
from os import path
import sys
binary_dir = "../../../build/tools/hpvm/test/dnn_benchmarks/"
temp_file_name = "temp.txt"
pred_binary_prefix = "test_"
pred_binary_suffix = "_pred"
rt_binary_suffix = "_rt_pred"
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()
arg = 2
while arg < num_args:
binary_files.append(sys.argv[arg])
arg = arg + 1
for dnn_name in binary_files:
dnn_dir = "../benchmarks/" + dnn_name
binary_name = binary_dir + pred_binary_prefix + dnn_name + pred_binary_suffix
pred_dir = dnn_dir + "/predictive"
config_file = pred_dir + "/" + dnn_name + ".txt"
temp_file = pred_dir + "/" + temp_file_name
print("dnn_dir: " + dnn_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()
arg = 2
while arg < num_args:
binary_files.append(sys.argv[arg])
arg = arg + 1
for dnn_name in binary_files:
binary_dir = "../benchmarks/" + 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()
import os
import sys
#dnns = "alexnet alexnet2 vgg16_cifar10 vgg16_cifar100 resnet18 mobilenet lenet_mnist"
dnns = "alexnet"
if sys.argv[1] == "--runtime":
exec_command = "python3 run_dnn.py" + " --runtime_tuning " + dnns
print(exec_command)
os.system(exec_command)
elif sys.argv[1] == "--predictive":
exec_command = "python3 run_dnn.py" + " --predictive_tuning " + dnns
print(exec_command)
os.system(exec_command)
else:
print("Error: Use --runtime_tuning or --predictive_tuning flags!")
sys.exit()
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