Browse Source

!11239 fix multi graph timeout

From: @kisnwang
Reviewed-by: @zhoufeng54,@chujinjin
Signed-off-by: @chujinjin
tags/v1.2.0-rc1
mindspore-ci-bot Gitee 4 years ago
parent
commit
cfe8d6f32a
1 changed files with 7 additions and 7 deletions
  1. +7
    -7
      mindspore/ccsrc/backend/session/executor.cc

+ 7
- 7
mindspore/ccsrc/backend/session/executor.cc View File

@@ -358,13 +358,6 @@ void Executor::WaitTaskGraphAvailable(const SessionPtr &session, const std::shar
for (auto &tensor : task->input_need_lock_tensors_) { for (auto &tensor : task->input_need_lock_tensors_) {
tensor->SetNeedWait(true); tensor->SetNeedWait(true);
} }
auto graph = session->GetGraph(task->graph_id_);
if (graph != nullptr && !graph->IsPostGraphFinished()) {
mindspore::ScopedLongRunning long_running;
std::unique_lock<std::mutex> lock(reenter_mutex_);
reenter_cond_var_.wait(lock, [&graph] { return graph->IsPostGraphFinished(); });
MsException::Instance().CheckException();
}
} }


void Executor::RunGraphAsync(const SessionPtr &session, const GraphId &graph_id, void Executor::RunGraphAsync(const SessionPtr &session, const GraphId &graph_id,
@@ -376,6 +369,13 @@ void Executor::RunGraphAsync(const SessionPtr &session, const GraphId &graph_id,
task->graph_id_ = graph_id; task->graph_id_ = graph_id;
task->input_tensors_ = inputs; task->input_tensors_ = inputs;
task->input_need_lock_tensors_ = session->GetInputNeedLockTensors(graph_id, inputs); task->input_need_lock_tensors_ = session->GetInputNeedLockTensors(graph_id, inputs);
auto graph = session->GetGraph(task->graph_id_);
if (graph != nullptr && !graph->IsPostGraphFinished()) {
mindspore::ScopedLongRunning long_running;
std::unique_lock<std::mutex> lock(reenter_mutex_);
reenter_cond_var_.wait(lock, [&graph] { return graph->IsPostGraphFinished(); });
MsException::Instance().CheckException();
}
session->CreateOutputTensors(graph_id, inputs, outputs, &task->tensor_to_node_); session->CreateOutputTensors(graph_id, inputs, outputs, &task->tensor_to_node_);
// maintain a copy of output vector // maintain a copy of output vector
task->outputs_ = *outputs; task->outputs_ = *outputs;


Loading…
Cancel
Save