-
Notifications
You must be signed in to change notification settings - Fork 4
Home
Qiongwen Xu edited this page May 25, 2021
·
3 revisions
Welcome to the sigcomm21_artifact wiki!
usage:
options and descriptions
-h : display usage
-n arg : number of iterations
-k arg : number of top programs
-m : turn on measurement
--path_res arg : output file path
There are two ways for the compiler to get benchmarks:
1. read benchmark which is in the code: use `--bm`;
2. (only support ebpf)read benchmark from files: use `--bytecode`, `--map`, `--desc` to set the input file path. There is an example in input/
--bm arg : benchmark ID. toy_isa: 0 - 2; ebpf: 0 - 2
--bm_from_file : benchmark from file flag. the default is false
--bytecode arg : bpf bytecode file
--map arg : bpf map attributes file
--desc arg : bpf bytecode description file
--w_e arg : weight of error cost in cost function
--w_p arg : weight of performance cost in cost function
--st_ex arg : strategy of error cost computation from example. `arg`: 0(abs), 1(pop)
--st_eq arg : strategy of error cost computation equations. `arg`: 0(eq1), 1(eq2)
--st_avg arg : strategy of whether average total error cost from examples. `arg`: 0(navg), 1(avg)
--st_perf arg : strategy of whether performance cost for examples. `arg`: 0(program length), 1(program runtime)
The next five parameters are about restart. The last four parameters work ONLY when `st_when_to_restart` is not set as 0
--st_when_to_restart arg : strategy of when to restart during sampling. `arg`: 0(no restart), 1(restart every `st_when_to_restart_niter`)
--st_when_to_restart_niter arg : when `st_when_to_restart` is set as 1, should set this parameter.
--st_start_prog arg : strategy of a new start program for restart.`arg`: 0(no change) 1(change all instructions) 2(change k continuous instructions)
--restart_w_e_list arg : weights of error cost in cost function for restart. `arg` eg: 1.5,0.5
--restart_w_p_list arg : weights of performance cost in cost function for restart. `arg` eg: 1.5,0.5
configurations of window decomposition method. window range: [0, max_pgm_len-1]
--reset_win_niter arg : iterations of setting next window during sampling, should > 0
--win_s_list arg : window start list. `arg` eg: 0,4
--win_e_list arg : window end list. `arg` eg: 3,6
The next two parameters are about new proposal generation.
A new proposal has three modification typies: modify a random instruction operand,
instruction, two continuous instructions, and modify a random instruction as NOP.
Sum of their probabilities is 1.
The four probabilities are set by `p_inst_operand`, `p_inst` and `p_inst_as_nop` (`p_two_cont_insts` can be computed)
--p_inst_operand arg: : probability of modifying a random operand in a random instruction for a new proposal
--p_inst arg : probability of modifying a random instruction (both opcode and operands) for a new proposal
--p_inst_as_nop arg : probability of modifying a random instruction as NOP for a new proposal
validator related arguments
--disable_prog_eq_cache : disable the usage of prog_eq_cache
--enable_prog_uneq_cache : enable the usage of prog_uneq_cache
--is_win : enable window program equivalence check
--enable_z3server : enable z3 server for solving z3 requests
--port arg : port number the z3 server and client communicate on
--logger_level : least logger level that allows to print: 0(ERROR), 1(DEBUG)