-
Notifications
You must be signed in to change notification settings - Fork 0
/
audit_robustness.yml
104 lines (80 loc) · 3.58 KB
/
audit_robustness.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
$SUITE_VARS$:
_python_pre: "export PYTHONPATH={{ exp_code_dir }}/utils && . {{ exp_code_dir }}/.venv/bin/activate"
_python_path: "[% my_run._python_pre %] && {{ exp_code_dir }}/.venv/bin/python"
cmd_mpspdz: "[% my_run._python_path %] -m python_utils.scripts.experiment_runner --player-number <PLAYER-ID>"
n_parties: 3
$INCLUDE_VARS$: dataset.yml
commit_output: False
convert_ring_bits: 31
convert_n_threads: 36
convert_chunk_size: 150000
consistency_args:
abs_path_to_code_dir: "{{ exp_consistency_dir }}"
hosts_file: "{{ exp_consistency_hosts_file }}"
pc: kzg
pp_args: "[% my_run.dataset_info[my_run.mpc.script_args.dataset].max_input_size %]"
gen_pp: True
type: $FACTOR$
use_split: True
mpc:
player_0_hostname: "[% exp_host_lst | json_query('[?host_type==`consistency`].private_dns_name') | default(['<UNDEFINED-DNS>'], true) | first %]"
abs_path_to_code_dir: "{{ exp_code_dir }}"
player_count: "[% my_run.n_parties %]"
protocol_setup: $FACTOR$
compiler_args: $FACTOR$ #'100000000'] # budget was '1000000'1million # also look at B 5 -> cannot be used together with R
domain: $FACTOR$
custom_prime: $FACTOR$
script_args:
consistency_check: "[% my_run.consistency_args.type %]"
sha3_approx_factor: "[% my_run.dataset_info[my_run.mpc.script_args.dataset].sha3_approx_factor_full | default(1) %]" # we prove full dataset
n_samples: 1
n_input_parties: "[% my_run.n_parties %]"
dataset:
$FACTOR$: [ adult_3p, mnist_full_3party, cifar_alexnet_3party ]
debug: False # for a final benchmarking run, can also use `debug: False`, this should then only release no secret info
emulate: False
# in a network with latency, a high batch size for ml.py is key to a good performance (60k raised insufficient memory error)
batch_size: 128 #1024 #256 # was 128 before # 60000 -> insufficient memory
n_threads: 36 #128 #64 # TODO before was 32 -> see if this helps (128 raises too many files runtime error)
audit_trigger_idx: 0 # select single audit trigger (from all)
stage: # "compile" in run and then in next run "run"
$FACTOR$: [ compile, run ] # ensure that this is last factor
audit_robustness_3pc:
n_repetitions: 1
host_types:
consistency:
n: 3
check_status: True
init_roles:
- setup-base
- download-dataset
- setup-consistency
- setup-spdz-secrets
$CMD$:
- main: "[% my_run.cmd_mpspdz | replace('<PLAYER-ID>', 0) %]"
- main: "[% my_run.cmd_mpspdz | replace('<PLAYER-ID>', 1) %]"
- main: "[% my_run.cmd_mpspdz | replace('<PLAYER-ID>', 2) %]"
base_experiment:
consistency_args: # need this so that this comes before compile, run factors, ie mpc dict should always be last
type:
$FACTOR$: [ sha3s, cerebro, pc ]
network_type: lan
mpc_type: $FACTOR$
mpc:
script_name: audit_robustness
script_args:
sha3_approx_factor: "[% my_run.dataset_info[my_run.mpc.script_args.dataset].sha3_approx_factor | default(1) %]"
factor_levels:
- mpc_type: sh
mpc: # should convert
protocol_setup: "semi_honest_3"
domain: ring_split
compiler_args: [ '-R', '64', '-C', '--budget', "[% my_run._runtime_info.budget %]", '-Z', '3', '-D' ]
custom_prime: null
- mpc_type: mal
mpc: # should convert
protocol_setup: "sy-rep-ring-party"
domain: ring_split
compiler_args: [ '-R', '64', '-C', '--budget', "[% my_run._runtime_info.budget %]", '-Z', '3', '-D' ]
custom_prime: null
$ETL$: {}