Skip to content

Commit b74c092

Browse files
authored
[JitLayer]Erase out vars in scope to avoid data rewritinig (#46249) (#46273)
* [JitLayer]Erase out vars to avoid data rewrittinig * Fix code comments
1 parent f3d5c85 commit b74c092

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

paddle/fluid/jit/engine/executor_engine.cc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,17 @@ std::vector<Tensor> ExecutorEngine::operator()(
4444
std::vector<DenseTensor> ExecutorEngine::operator()(
4545
const std::vector<DenseTensor> &inputs) {
4646
utils::ShareIntoScope(info_->InputArgNames(), inputs, &scope_);
47+
const auto out_names = info_->OutputArgNames();
4748
inner_exe_.Run(info_->ProgramDesc(),
4849
&scope_,
4950
/*blockID=*/0,
5051
false,
5152
true,
52-
info_->OutputArgNames());
53+
out_names);
5354
std::vector<DenseTensor> outputs;
54-
utils::FetchOuts(info_->OutputArgNames(), scope_, &outputs);
55+
utils::FetchOuts(out_names, scope_, &outputs);
56+
// Erase output vars to avoid data rewriting.
57+
scope_.EraseVars(out_names);
5558
return outputs;
5659
}
5760

paddle/fluid/jit/engine/pe_engine.cc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,15 @@ std::vector<Tensor> PEEngine::operator()(const std::vector<Tensor> &inputs) {
9696
std::vector<DenseTensor> PEEngine::operator()(
9797
const std::vector<DenseTensor> &inputs) {
9898
utils::ShareIntoScope(info_->InputArgNames(), inputs, &scope_);
99+
const auto out_names = info_->OutputArgNames();
99100
// need to recreate tmp variables in new scope
100101
inner_pe_->PrepareVariables(&scope_);
101-
inner_pe_->RunWithoutFetch(info_->OutputArgNames());
102+
inner_pe_->RunWithoutFetch(out_names);
102103

103104
std::vector<DenseTensor> outputs;
104-
utils::FetchOuts(info_->OutputArgNames(), scope_, &outputs);
105+
utils::FetchOuts(out_names, scope_, &outputs);
106+
// Erase output vars to avoid data rewriting.
107+
scope_.EraseVars(out_names);
105108
scope_.DropKids();
106109
return outputs;
107110
}

0 commit comments

Comments
 (0)