Skip to content

Commit fbaad0c

Browse files
refine eager backward (#72816)
* refine eager backward * refine
1 parent f1b794d commit fbaad0c

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

paddle/fluid/eager/backward.cc

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,14 @@ std::vector<paddle::Tensor> RunBackward(
225225
std::unordered_map<GradNodeBase*, int> node_in_degree_map =
226226
getInDegreeMap(queue);
227227

228+
std::deque<GradNodeBase*> ready_queue;
229+
for (GradNodeBase* item : queue) {
230+
if (!node_in_degree_map.count(item)) {
231+
ready_queue.push_back(item);
232+
}
233+
}
234+
queue = ready_queue;
235+
228236
std::list<GradNodeBase*> force_sequential_nodes_forward_queue =
229237
egr::Controller::Instance().GetForceSequentialNodes();
230238
std::deque<GradNodeBase*> force_sequential_nodes_queue;
@@ -256,10 +264,6 @@ std::vector<paddle::Tensor> RunBackward(
256264
GradNodeBase* node = queue.front();
257265
VLOG(3) << "Preparing GradNode:" << node->name() << " addr:" << node;
258266
try {
259-
if (queue.size() > 1 && node_in_degree_map[node] != 0) {
260-
queue.pop_front();
261-
continue;
262-
}
263267
queue.pop_front();
264268

265269
// Run node: This is where Hook happens

0 commit comments

Comments
 (0)