Commit c6c28dc
authored
[FT] Support local_sgd / diloco in titan (#1122)
Depends on torchft changes:
- meta-pytorch/torchft#168
- meta-pytorch/torchft#170
This PR adds a new semi sync method context manager which wraps around
the train loop to run local sgd or diloco. It also adds multiple config
properties to set and control the training method.
### To run (need 3 different terminals):
Start torchft lighthouse (terminal 1):
`
RUST_LOGS=debug RUST_BACKTRACE=1 torchft_lighthouse --min_replicas 2
--quorum_tick_ms 100 --join_timeout_ms 10000
`
Start replica 1 (terminal 2, update lighthouse URL):
`
TORCHFT_LIGHTHOUSE=<url> TORCHFT_MANAGER_PORT=29520 REPLICA_GROUP_ID=0
CUDA_VISIBLE_DEVICES=0,1,2,3 NGPU=4 ./run_train.sh
--parallelism.data_parallel_shard_degree=4 --fault_tolerance.enable
--fault_tolerance.group_size=2 --fault_tolerance.replica_id=0
--fault_tolerance.semi_sync_method="diloco"
`
Start replica 2 (terminal 3, update lighthouse URL):
`
TORCHFT_LIGHTHOUSE=<url> TORCHFT_MANAGER_PORT=29522 REPLICA_GROUP_ID=1
CUDA_VISIBLE_DEVICES=4,5,6,7 NGPU=4 ./run_train.sh
--parallelism.data_parallel_shard_degree=4 --fault_tolerance.enable
--fault_tolerance.group_size=2 --fault_tolerance.replica_id=1
--fault_tolerance.semi_sync_method="diloco"
`1 parent f27a184 commit c6c28dc
3 files changed
Lines changed: 76 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | | - | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
25 | 29 | | |
26 | 30 | | |
27 | 31 | | |
| |||
85 | 89 | | |
86 | 90 | | |
87 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
88 | 95 | | |
89 | 96 | | |
90 | 97 | | |
91 | 98 | | |
92 | 99 | | |
93 | 100 | | |
94 | | - | |
| 101 | + | |
95 | 102 | | |
96 | 103 | | |
97 | 104 | | |
| |||
158 | 165 | | |
159 | 166 | | |
160 | 167 | | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
499 | 499 | | |
500 | 500 | | |
501 | 501 | | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
502 | 515 | | |
503 | 516 | | |
504 | 517 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
401 | 401 | | |
402 | 402 | | |
403 | 403 | | |
404 | | - | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
405 | 411 | | |
406 | 412 | | |
407 | 413 | | |
| |||
0 commit comments