Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
7b7ef3ba
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
7b7ef3ba
编写于
9月 01, 2022
作者:
Z
zhaoyingli
提交者:
GitHub
9月 01, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix oprole (#45610)
上级
6c5f9aa8
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
7 addition
and
5 deletion
+7
-5
python/paddle/distributed/auto_parallel/partitioner.py
python/paddle/distributed/auto_parallel/partitioner.py
+4
-3
python/paddle/distributed/passes/auto_parallel_fp16.py
python/paddle/distributed/passes/auto_parallel_fp16.py
+3
-2
未找到文件。
python/paddle/distributed/auto_parallel/partitioner.py
浏览文件 @
7b7ef3ba
...
...
@@ -224,13 +224,15 @@ class Partitioner(object):
forward_op_id2forward_op
[
serial_ops
[
idx
].
desc
.
original_id
()]
=
serial_ops
[
idx
]
appended_grad_times
=
0
# partiiton
appended_grad_times
=
0
for
idx
,
op
in
enumerate
(
serial_ops
):
op_dist_attr
=
self
.
_dist_context
.
get_op_dist_attr_for_program
(
op
)
if
is_backward_op
(
op
)
and
(
is_forward_op
(
serial_ops
[
idx
-
1
])
or
is_loss_op
(
serial_ops
[
idx
-
1
])):
appended_grad_times
+=
1
if
not
op_dist_attr
.
is_recompute
:
appended_grad_times
+=
1
# partititon input variables
for
serial_input_varname
in
op
.
desc
.
input_arg_names
():
...
...
@@ -256,7 +258,6 @@ class Partitioner(object):
serial_output_varname
]
=
new_varname
# partition op
op_dist_attr
=
self
.
_dist_context
.
get_op_dist_attr_for_program
(
op
)
if
is_forward_op
(
op
)
or
op_dist_attr
.
is_recompute
:
kinputs
,
koutputs
=
dist_op_context
.
prepare_context
(
op
)
dist_op_forward_impl
=
_get_dist_op_forward_implement
(
...
...
python/paddle/distributed/passes/auto_parallel_fp16.py
浏览文件 @
7b7ef3ba
...
...
@@ -18,14 +18,13 @@ import paddle
from
paddle.framework
import
core
from
paddle.fluid
import
unique_name
from
.pass_base
import
register_pass
from
paddle.distributed.fleet.meta_optimizers.common
import
OpRole
from
paddle.fluid.data_feeder
import
check_variable_and_dtype
,
check_type
from
paddle.distributed.auto_parallel.utils
import
set_var_dist_attr
,
naive_set_dist_op_attr_for_program_by_mesh_and_mapping
from
paddle.distributed.auto_parallel.process_group
import
get_world_process_group
from
paddle.fluid.contrib.mixed_precision.fp16_utils
import
AutoMixedPrecisionLists
from
paddle.fluid.contrib.mixed_precision.fp16_utils
import
_keep_layer_norm_scale_bias_to_fp32
,
_need_keep_fp32
,
_valid_types
,
_dtype_to_str
from
paddle.distributed.auto_parallel.dist_attribute
import
OperatorDistributedAttribute
from
paddle.distributed.auto_parallel.utils
import
is_forward_op
,
is_backward_op
from
paddle.distributed.auto_parallel.utils
import
is_forward_op
,
is_backward_op
,
OP_ROLE_KEY
,
OpRole
from
.auto_parallel_amp
import
AMPPass
world_process_group
=
get_world_process_group
()
...
...
@@ -331,6 +330,7 @@ class FP16State(object):
attrs
=
{
"in_dtype"
:
in_var
.
dtype
,
"out_dtype"
:
cast_var
.
dtype
,
OP_ROLE_KEY
:
OpRole
.
Forward
})
naive_set_dist_op_attr_for_program_by_mesh_and_mapping
(
cast_op
,
ref_mesh
,
ref_mapping
,
dist_context
)
...
...
@@ -409,6 +409,7 @@ class FP16State(object):
attrs
=
{
"in_dtype"
:
dst_dtype
,
"out_dtype"
:
src_dtype
,
OP_ROLE_KEY
:
OpRole
.
Backward
})
grad
.
desc
.
set_dtype
(
src_dtype
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录