提交 4e60b417 编写于 作者: B BigWhiteDog

add some useful scripts

上级 9799f8b3
#!/usr/bin/env python3
import subprocess
import os
import time
import signal
import argparse
import shutil
parser = argparse.ArgumentParser()
parser.add_argument('-d', '--cpts-dir', type=str, required=True)
args = parser.parse_args()
base_dir = args.cpts_dir
# base_dir = '/nfs/home/share/zhangchuanqi/gcpt_cpts/simpoint-spec06-gcb-o2-50M'
os.chdir(base_dir)
workloads = os.listdir(base_dir)
workloads = list(filter(lambda x: len(x.split('_'))<=2, workloads))
print(workloads)
for w in workloads:
workload_dir = os.path.join(base_dir, w)
cpt_idxs = os.listdir(workload_dir)
for cidx in cpt_idxs:
if not cidx.isdigit():
continue
cpt_dir = os.path.join(workload_dir, cidx)
cpt_files = os.listdir(cpt_dir)
for cpt_file in cpt_files:
if cpt_file.endswith('gz'):
try:
weight = float(cpt_file.split('_')[-2])
except:
weight = 0.0
if weight < 0.000001:
continue
cpt_path = os.path.join(cpt_dir, cpt_file)
new_cpt_dirname = f'{w}{cpt_file[:-4]}'
key = cpt_file.split('_')[1]
new_cpt_dir = os.path.join(base_dir, new_cpt_dirname, '0')
os.makedirs(new_cpt_dir, exist_ok=True)
new_cpt_path = os.path.join(new_cpt_dir, f'_{key}_.gz')
# print(f'mv {cpt_path} {new_cpt_path}')
shutil.move(cpt_path, new_cpt_path)
print(f'rm -rf {workload_dir}')
shutil.rmtree(workload_dir)
#!/usr/bin/env python3
import subprocess
import os
import time
import signal
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--cluster", type=str, required=True)
parser.add_argument('--cpt-interval', type=int, default=100000000)
parser.add_argument('-w', '--workload', type=str, required=True)
parser.add_argument('-b', '--bbl', type=str, required=True)
parser.add_argument("--nemu-home", type=str, default='/nfs/home/zhangchuanqi/lvna/for_xs/xs-env/nemu-tracing')
parser.add_argument('--simpoint-cluster-dir', type=str, default='/nfs/home/share/zhangchuanqi/gcpt_cluster')
parser.add_argument('--cpts-dir', type=str, default='/nfs/home/share/zhangchuanqi/gcpt_cpts')
args = parser.parse_args()
os.environ['NEMU_HOME'] = args.nemu_home
os.chdir(args.nemu_home)
generate_bbv_cmd = f'./build/riscv64-nemu-interpreter -b -D outputs -C {args.cluster} ' + \
f'--cpt-interval {args.cpt_interval} ' + \
'-r resource/gcpt_restore/build/gcpt.bin ' + \
f'{args.bbl} ' + \
f'-w {args.workload} ' + \
'--simpoint-profile '
print(generate_bbv_cmd)
# subprocess.run(generate_bbv_cmd, shell=True)
real_cluster_dir = os.path.join(args.simpoint_cluster_dir, args.cluster)
real_workload_simpoint_dir = os.path.join(args.simpoint_cluster_dir, args.cluster, args.workload)
os.makedirs(real_workload_simpoint_dir, exist_ok=True)
generate_weights_cmd = f'./resource/simpoint/simpoint_repo/bin/simpoint \
-loadFVFile ./outputs/{args.cluster}/{args.workload}/simpoint_bbv.gz \
-saveSimpoints {real_workload_simpoint_dir}/simpoints0 -saveSimpointWeights {real_workload_simpoint_dir}/weights0 \
-inputVectorsGzipped -maxK 30 -numInitSeeds 2 -iters 1000 -seedkm 123456 -seedproj 654321'
print(generate_weights_cmd)
# subprocess.run(generate_weights_cmd, shell=True)
take_cpt_cmd = f'./build/riscv64-nemu-interpreter {args.bbl} \
-D {args.cpts_dir} -w {args.workload} -C {args.cluster} \
-b -S {real_cluster_dir} --cpt-interval {args.cpt_interval} \
-r resource/gcpt_restore/build/gcpt.bin'
print(take_cpt_cmd)
subprocess.run(take_cpt_cmd, shell=True)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册