Skip to content

Commit a89cd46

Browse files
committed
Wait VarDummyHandle generated
1 parent 8305322 commit a89cd46

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

paddle/fluid/framework/details/computation_op_handle.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ void ComputationOpHandle::RunImpl() {
3535

3636
bool ComputationOpHandle::NeedWait(VarHandleBase *in_var) {
3737
bool need_wait =
38-
dynamic_cast<VarHandle *>(in_var) && in_var->generated_op_ &&
38+
in_var && in_var->generated_op_ &&
3939
in_var->generated_op_->DeviceContext(place_) != dev_ctxes_[place_];
4040
return need_wait;
4141
}

paddle/fluid/framework/details/op_handle_base.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ void OpHandleBase::WaitInputVarGenerated(const platform::Place &place) {
105105
}
106106

107107
bool OpHandleBase::NeedWait(VarHandleBase *in_var) {
108-
return dynamic_cast<VarHandle *>(in_var) && in_var->generated_op_;
108+
return in_var && in_var->generated_op_;
109109
}
110110

111111
void OpHandleBase::RunAndRecordEvent(const std::function<void()> &callback) {

paddle/fluid/framework/details/send_op_handle.cc

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,17 @@ SendOpHandle::SendOpHandle(const framework::OpDesc &op_desc,
2626
place_(place) {}
2727

2828
void SendOpHandle::RunImpl() {
29+
// TODO(wuyi): need further analysis whether wait VarDummyHandle.
2930
// Wait input done
30-
WaitInputVarGenerated(place_);
31+
for (auto *in : inputs_) {
32+
auto &p = static_cast<VarHandle *>(in)->place_;
33+
if (in->DebugString() == "dummy") { // HACK
34+
continue;
35+
}
36+
if (in->generated_op_) {
37+
in->generated_op_->RecordWaitEventOnCtx(dev_ctxes_[p]);
38+
}
39+
}
3140
auto &tmp_scope = local_scope_->FindVar(kLocalExecScopeName)->Get<Scope *>();
3241
// FIXME(wuyi): can not use RunAndRecordEvent here, for it will cause dead
3342
// lock.

0 commit comments

Comments
 (0)