diff --git a/mindspore/ccsrc/backend/session/ascend_session.cc b/mindspore/ccsrc/backend/session/ascend_session.cc index 5880b9911b..487578a595 100644 --- a/mindspore/ccsrc/backend/session/ascend_session.cc +++ b/mindspore/ccsrc/backend/session/ascend_session.cc @@ -1308,6 +1308,8 @@ void AscendSession::RunOpMemoryAllocNew(const std::vector &in void AscendSession::RunOpGenKernelEvent(const KernelGraph *graph) const { MS_EXCEPTION_IF_NULL(graph); + auto kernels = graph->execution_order(); + device::ascend::AscendStreamAssign::GetInstance().AssignStreamForNonTaskSink(kernels); auto runtime_instance = device::KernelRuntimeManager::Instance().GetKernelRuntime(kAscendDevice, device_id_); MS_EXCEPTION_IF_NULL(runtime_instance); runtime_instance->GenKernelEvents(*graph); diff --git a/mindspore/ccsrc/runtime/device/ascend/ascend_stream_assign.cc b/mindspore/ccsrc/runtime/device/ascend/ascend_stream_assign.cc index 2c30f34923..c9aecd1dc4 100644 --- a/mindspore/ccsrc/runtime/device/ascend/ascend_stream_assign.cc +++ b/mindspore/ccsrc/runtime/device/ascend/ascend_stream_assign.cc @@ -214,8 +214,7 @@ void SetNodeStreamIDAttr(const NotNull &graph_ptr) { } } // namespace -void AscendStreamAssign::AssignStreamForNonTaskSink(const NotNull &graph_ptr) { - auto &kernels = graph_ptr->execution_order(); +void AscendStreamAssign::AssignStreamForNonTaskSink(const std::vector &kernels) { if (kernels.empty()) { return; } @@ -255,7 +254,8 @@ void AscendStreamAssign::AssignStreamForNonTaskSink(const NotNull &graph_ptr) { if (!IsTaskSink()) { - AssignStreamForNonTaskSink(graph_ptr); + auto kernels = graph_ptr->execution_order(); + AssignStreamForNonTaskSink(kernels); return; } if (!graph_ptr->is_dynamic_shape()) { diff --git a/mindspore/ccsrc/runtime/device/ascend/ascend_stream_assign.h b/mindspore/ccsrc/runtime/device/ascend/ascend_stream_assign.h index 513e7ba8ed..c3c39bed7a 100644 --- a/mindspore/ccsrc/runtime/device/ascend/ascend_stream_assign.h +++ b/mindspore/ccsrc/runtime/device/ascend/ascend_stream_assign.h @@ -59,6 +59,7 @@ class AscendStreamAssign { void AssignStream(const NotNull &graph_ptr); void GetHcomStreams(std::vector *streams); void GetWaitStreams(vector *wait_active_stream_list); + void AssignStreamForNonTaskSink(const std::vector &kernels); const std::vector> &get_stream_group() const { return stream_groups_; } const std::map &get_event_map() const { return event_map_; } @@ -68,7 +69,6 @@ class AscendStreamAssign { void Reset(); CNodePtr CreateSendApplyKernel(const NotNull &graph_ptr, uint32_t event_id, uint32_t stream_id); CNodePtr CreateRecvApplyKernel(const NotNull &graph_ptr, uint32_t event_id, uint32_t stream_id); - void AssignStreamForNonTaskSink(const NotNull &graph_ptr); void CheckResourceAssign(const NotNull &graph_ptr); void CheckStreamAssign(const NotNull &graph_ptr); void CheckEventAssign(const NotNull &graph_ptr); diff --git a/tests/ut/cpp/stub/tasksink/ascend_stream_assign_stub.cc b/tests/ut/cpp/stub/tasksink/ascend_stream_assign_stub.cc index 91dd976ae5..07452154f7 100644 --- a/tests/ut/cpp/stub/tasksink/ascend_stream_assign_stub.cc +++ b/tests/ut/cpp/stub/tasksink/ascend_stream_assign_stub.cc @@ -30,6 +30,8 @@ void AscendStreamAssign::AssignStream(const NotNull &graph_ptr) void AscendStreamAssign::GetWaitStreams(vector *wait_active_stream_list) { return; } void AscendStreamAssign::GetHcomStreams(std::vector *streams) { return; } + +void AscendStreamAssign::AssignStreamForNonTaskSink(const std::vector &kernels) { return; } } // namespace ascend void KernelAdjust::InsertDeviceLoopCtrl(const std::shared_ptr &kernel_graph_ptr) { return; }