From 822e42d767d9f3739077f46169d64dc36b48cd4e Mon Sep 17 00:00:00 2001 From: Yuang Liu Date: Thu, 28 Jul 2022 09:36:49 +0800 Subject: [PATCH] [auto parallel] bug fix for op has sub_block attr created with copy_from (#44664) --- python/paddle/distributed/auto_parallel/partitioner.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/python/paddle/distributed/auto_parallel/partitioner.py b/python/paddle/distributed/auto_parallel/partitioner.py index 97ff881ef95..3eb8437db6b 100644 --- a/python/paddle/distributed/auto_parallel/partitioner.py +++ b/python/paddle/distributed/auto_parallel/partitioner.py @@ -179,6 +179,16 @@ class Partitioner(object): partitioned_main_prog.current_block_idx = 0 + # should reconnect the block_attr ptr to the correct block + for block_id in range(self._dist_context.block_state.nblock): + block = partitioned_main_prog.block(block_id) + for op in block.ops: + for attr_name in op.all_attrs(): + if op.attr_type(attr_name) == core.AttrType.BLOCK: + relative_id = op._block_attr_id(attr_name) + op._set_attr(attr_name, + partitioned_main_prog.block(relative_id)) + partitioned_params_and_grads = [] for p, g in params_and_grads: assert p.name in self._serial2dist_varname_mapping -- GitLab