未验证 提交 7dad9f70 编写于 作者: T TeFeng Chen 提交者: GitHub

fix double-free bug in variables of cinn subgraph (#40609)

上级 fcbb7440
...@@ -73,8 +73,10 @@ static void ShareVarInfoToCinnLaunch( ...@@ -73,8 +73,10 @@ static void ShareVarInfoToCinnLaunch(
varinfo_maps.at(cinn_launch_op->GetScopeIdx()); varinfo_maps.at(cinn_launch_op->GetScopeIdx());
// collect all MemOptVarInfos of external variables // collect all MemOptVarInfos of external variables
// that would be eager deleted after the cinn_launch subgraph executed, // that were eager deleted after the cinn_launch subgraph executed,
// and store them as attribute of the subgraph // and we will delete them in advance among eager_deletion_ops
// inside cinn_launch subgraph, so store them as attribute of the subgraph
// to pass to the inner eager_deletion_ops.
for (const auto& var_name : vars_to_delete) { for (const auto& var_name : vars_to_delete) {
auto it = src_varinfo_map.find(var_name); auto it = src_varinfo_map.find(var_name);
PADDLE_ENFORCE_NE(it, src_varinfo_map.end(), PADDLE_ENFORCE_NE(it, src_varinfo_map.end(),
...@@ -82,6 +84,8 @@ static void ShareVarInfoToCinnLaunch( ...@@ -82,6 +84,8 @@ static void ShareVarInfoToCinnLaunch(
"MemOptVarInfo of var[%s] not found", var_name)); "MemOptVarInfo of var[%s] not found", var_name));
dst_varinfo_map.emplace(var_name, it->second); dst_varinfo_map.emplace(var_name, it->second);
} }
// skip running of the followed eager_deletion_op
followed_eager_deletion_op->SetSkipRunning(true);
} }
static void TakeVarInfoFromMainGraph( static void TakeVarInfoFromMainGraph(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册