Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
afeixing77
Paddle
提交
fa16c21f
P
Paddle
项目概览
afeixing77
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
0
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看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
fa16c21f
编写于
8月 06, 2021
作者:
S
ShenLiang
提交者:
GitHub
8月 06, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix bug of inplace (#34665)
上级
8a9dc5dc
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
9 deletion
+15
-9
python/paddle/distributed/fleet/meta_parallel/pp_utils/p2p_communication.py
...ributed/fleet/meta_parallel/pp_utils/p2p_communication.py
+15
-9
未找到文件。
python/paddle/distributed/fleet/meta_parallel/pp_utils/p2p_communication.py
浏览文件 @
fa16c21f
...
...
@@ -161,12 +161,15 @@ def send_partial(tensor,
ring_id
=
0
if
group
is
None
else
group
.
id
if
_is_valid_send_recv_partial
(
tensor
,
nranks
):
return
_C_ops
.
partial_send
(
tensor
,
'use_calc_stream'
,
use_calc_stream
,
'ring_id'
,
ring_id
,
'peer'
,
dst
,
'num
'
,
nranks
,
'id'
,
rank_id
)
return
_C_ops
.
partial_send
(
tensor
.
detach
(),
'use_calc_stream'
,
use_calc_stream
,
'ring_id'
,
ring_id
,
'peer
'
,
dst
,
'num'
,
nranks
,
'id'
,
rank_id
)
else
:
return
paddle
.
distributed
.
send
(
tensor
,
dst
=
dst
,
group
=
group
,
use_calc_stream
=
use_calc_stream
)
tensor
.
detach
(),
dst
=
dst
,
group
=
group
,
use_calc_stream
=
use_calc_stream
)
def
recv_partial
(
tensor
,
...
...
@@ -180,13 +183,16 @@ def recv_partial(tensor,
ring_id
=
0
if
group
is
None
else
group
.
id
if
_is_valid_send_recv_partial
(
tensor
,
nranks
):
_C_ops
.
partial_recv
(
tensor
,
'use_calc_stream'
,
use_calc_stream
,
_C_ops
.
partial_recv
(
tensor
.
detach
()
,
'use_calc_stream'
,
use_calc_stream
,
'ring_id'
,
ring_id
,
'peer'
,
src
,
'num'
,
nranks
,
'id'
,
rank_id
,
'dtype'
,
tensor
.
dtype
,
'out_shape'
,
tensor
.
shape
)
else
:
paddle
.
distributed
.
recv
(
tensor
,
src
=
src
,
group
=
group
,
use_calc_stream
=
use_calc_stream
)
tensor
.
detach
(),
src
=
src
,
group
=
group
,
use_calc_stream
=
use_calc_stream
)
def
allgather_partial
(
tensor
,
...
...
@@ -200,9 +206,9 @@ def allgather_partial(tensor,
return
ring_id
=
0
if
group
is
None
else
group
.
id
return
_C_ops
.
partial_allgather_
(
tensor
,
'use_calc_stream'
,
use_calc_stream
,
'ring_id'
,
ring_id
,
'nranks'
,
nranks
,
'rank'
,
rank_id
)
return
_C_ops
.
partial_allgather_
(
tensor
.
detach
(),
'use_calc_stream'
,
use_calc_stream
,
'ring_id'
,
ring_id
,
'
nranks'
,
nranks
,
'
rank'
,
rank_id
)
def
_p2p_helper
(
tensor_send_next
,
tensor_send_prev
,
recv_prev
,
recv_next
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录