Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
a54962d3
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a54962d3
编写于
4月 17, 2018
作者:
Y
Yancey1989
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update by comment
上级
49e885b6
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
4 addition
and
4 deletion
+4
-4
doc/fluid/design/dist_train/async_update.md
doc/fluid/design/dist_train/async_update.md
+4
-4
doc/fluid/design/dist_train/src/async_pserver.graffle
doc/fluid/design/dist_train/src/async_pserver.graffle
+0
-0
doc/fluid/design/dist_train/src/async_pserver.png
doc/fluid/design/dist_train/src/async_pserver.png
+0
-0
未找到文件。
doc/fluid/design/dist_train/async_update.md
浏览文件 @
a54962d3
...
...
@@ -28,10 +28,10 @@ the parameter `w1` as an example to introduce the steps:
1.
For each gradient variables, they may distribute on different GPU card and aggregate
them while they are all calculated.
1.
Split the gradient variable into multiple blocks according to the number of PServer
instances and then sen
t
them.
instances and then sen
d
them.
1.
PServer would run an
`Optimize Block`
using a specified optimize algorithm to update
the specified parameter.
1.
The trainer will fetch the parameter before running forward Op depends on the specified
1.
The trainer will fetch the parameter before running forward Op
which
depends on the specified
parameter.
1.
Broadcast the received variable into multiple GPU cards and continue to run the next
mini-batch.
...
...
@@ -44,7 +44,7 @@ send the gradient variables to the multiple PServer instances.
-
Schedule
`FetchVars`
operator to fetch the latest parameter from PServer before running
the forward ops.
-
There could be a large number of gradient variables to be sent, so we need to use another
thread pool(IO Threadpool) wh
ich
a number of the schedulable threads is larger than the
thread pool(IO Threadpool) wh
ose
a number of the schedulable threads is larger than the
computing thread pool to avoid competitive the thread resources with computing.
### Parameter Server
...
...
@@ -52,7 +52,7 @@ computing thread pool to avoid competitive the thread resources with computing.
<img
src=
"./src/async_pserver.png"
width=
"750"
/>
-
There should be multiple trainer instances want to optimize the same parameter at
the same time, to avoid the
pollution
, we need one
`BlockingQueue`
for each gradient
the same time, to avoid the
racing
, we need one
`BlockingQueue`
for each gradient
variable to process them one by one.
-
We need a
`Map`
structure to map a gradient variable name to the
`OptimizeBlock`
which
can optimize the respective parameter.
doc/fluid/design/dist_train/src/async_pserver.graffle
浏览文件 @
a54962d3
无法预览此类型文件
doc/fluid/design/dist_train/src/async_pserver.png
查看替换文件 @
49e885b6
浏览文件 @
a54962d3
166.0 KB
|
W:
|
H:
166.0 KB
|
W:
|
H:
2-up
Swipe
Onion skin
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录