Skip to content

Commit a54962d

Browse files
committed
update by comment
1 parent 49e885b commit a54962d

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

doc/fluid/design/dist_train/async_update.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ the parameter `w1` as an example to introduce the steps:
2828
1. For each gradient variables, they may distribute on different GPU card and aggregate
2929
them while they are all calculated.
3030
1. Split the gradient variable into multiple blocks according to the number of PServer
31-
instances and then sent them.
31+
instances and then send them.
3232
1. PServer would run an `Optimize Block` using a specified optimize algorithm to update
3333
the specified parameter.
34-
1. The trainer will fetch the parameter before running forward Op depends on the specified
34+
1. The trainer will fetch the parameter before running forward Op which depends on the specified
3535
parameter.
3636
1. Broadcast the received variable into multiple GPU cards and continue to run the next
3737
mini-batch.
@@ -44,15 +44,15 @@ send the gradient variables to the multiple PServer instances.
4444
- Schedule `FetchVars` operator to fetch the latest parameter from PServer before running
4545
the forward ops.
4646
- There could be a large number of gradient variables to be sent, so we need to use another
47-
thread pool(IO Threadpool) which a number of the schedulable threads is larger than the
47+
thread pool(IO Threadpool) whose a number of the schedulable threads is larger than the
4848
computing thread pool to avoid competitive the thread resources with computing.
4949

5050
### Parameter Server
5151

5252
<img src="./src/async_pserver.png" width="750"/>
5353

5454
- There should be multiple trainer instances want to optimize the same parameter at
55-
the same time, to avoid the pollution, we need one `BlockingQueue` for each gradient
55+
the same time, to avoid the racing, we need one `BlockingQueue` for each gradient
5656
variable to process them one by one.
5757
- We need a `Map` structure to map a gradient variable name to the `OptimizeBlock` which
5858
can optimize the respective parameter.
Binary file not shown.
10 Bytes
Loading

0 commit comments

Comments
 (0)