File tree Expand file tree Collapse file tree 1 file changed +8
-4
lines changed Expand file tree Collapse file tree 1 file changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -225,6 +225,14 @@ std::vector<paddle::Tensor> RunBackward(
225
225
std::unordered_map<GradNodeBase*, int > node_in_degree_map =
226
226
getInDegreeMap (queue);
227
227
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
+
228
236
std::list<GradNodeBase*> force_sequential_nodes_forward_queue =
229
237
egr::Controller::Instance ().GetForceSequentialNodes ();
230
238
std::deque<GradNodeBase*> force_sequential_nodes_queue;
@@ -256,10 +264,6 @@ std::vector<paddle::Tensor> RunBackward(
256
264
GradNodeBase* node = queue.front ();
257
265
VLOG (3 ) << " Preparing GradNode:" << node->name () << " addr:" << node;
258
266
try {
259
- if (queue.size () > 1 && node_in_degree_map[node] != 0 ) {
260
- queue.pop_front ();
261
- continue ;
262
- }
263
267
queue.pop_front ();
264
268
265
269
// Run node: This is where Hook happens
You can’t perform that action at this time.
0 commit comments