-
Notifications
You must be signed in to change notification settings - Fork 0
/
train_3pc_wan.yml
122 lines (96 loc) · 3.74 KB
/
train_3pc_wan.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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
$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>"
$INCLUDE_VARS$: dataset.yml
commit_output: True
convert_ring_bits: 31
convert_n_threads: 36
convert_debug: False
convert_chunk_size: 200000
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$: [ sha3s, cerebro, pc ]
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: 3
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_name: "training"
script_args:
n_input_parties: 3
sha3_approx_factor: "[% my_run.dataset_info[my_run.mpc.script_args.dataset].sha3_approx_factor_full | default(1) %]"
# n_epochs: 0
debug: False # for a final benchmarking run, can also use `debug: False`, this should then only release no secret info
emulate: False
# dataset: mnist_full_3party
dataset:
$FACTOR$: [ adult_3p, mnist_full_3party, cifar_alexnet_3party ]
# $FACTOR$: [ adult_3p ]
# cifar_alexnet_3party
# 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)
consistency_check: "[% my_run.consistency_args.type %]"
stage: # "compile" in run and then in next run "run"
$FACTOR$: [ compile, run ] # ensure that this is last factor
wan:
n_repetitions: 1
host_types:
consistency:
n: 3
check_status: True
init_roles:
- setup-base
- download-dataset
- setup-consistency
- setup-spdz-secrets
- setup-network-delay
# - download-dataset
# - setup-largeprimes
$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:
type:
$FACTOR$: [ sha3s, cerebro, pc ]
convert_chunk_size: $FACTOR$
network_type: wan
mpc_type: $FACTOR$
sleep_time: 10
mpc:
script_args:
n_batches: 5
batch_size: $FACTOR$
factor_levels:
- convert_chunk_size: 200000
mpc_type: "sh"
mpc:
protocol_setup: "semi_honest_3"
domain: ring
compiler_args: [ '-R', '64', '-C', '--budget', "[% my_run._runtime_info.budget_wan %]", '-D', '-Z', '3' ]
custom_prime: null
script_args:
batch_size: 128
- convert_chunk_size: 100000
mpc_type: "mal"
mpc:
protocol_setup: "sy-rep-ring-party"
domain: ring
compiler_args: [ '-R', '64', '-C', '--budget', "[% my_run._runtime_info.budget_wan %]", '-D', '-Z', '3' ]
custom_prime: null
script_args:
batch_size: 64
$ETL$: {}