| @@ -606,7 +606,7 @@ bool AscendKernelRuntime::RunDynamicKernelAsync(const session::KernelGraph *grap | |||||
| auto dynamic_kernels = iter->second; | auto dynamic_kernels = iter->second; | ||||
| for (const auto &dynamic_kernel : dynamic_kernels) { | for (const auto &dynamic_kernel : dynamic_kernels) { | ||||
| if (dynamic_kernel->have_depends()) { | |||||
| if (dynamic_kernel->have_depends() || dynamic_kernel->GetKernelType() == KernelType::HCCL_KERNEL) { | |||||
| MS_LOG(INFO) << "Match Dynamic Kernel, Start SyncStream"; | MS_LOG(INFO) << "Match Dynamic Kernel, Start SyncStream"; | ||||
| if (!SyncStream()) { | if (!SyncStream()) { | ||||
| MS_LOG(ERROR) << "SyncStream failed"; | MS_LOG(ERROR) << "SyncStream failed"; | ||||
| @@ -49,6 +49,8 @@ void DynamicKernel::Initialize() { | |||||
| MS_LOG(INFO) << "Init End"; | MS_LOG(INFO) << "Init End"; | ||||
| } | } | ||||
| int DynamicKernel::GetKernelType() { return AnfAlgo::GetKernelType(cnode_ptr_); } | |||||
| bool IsTupleGetItem(const AnfNodePtr &anf_node) { | bool IsTupleGetItem(const AnfNodePtr &anf_node) { | ||||
| MS_EXCEPTION_IF_NULL(anf_node); | MS_EXCEPTION_IF_NULL(anf_node); | ||||
| if (!anf_node->isa<CNode>()) { | if (!anf_node->isa<CNode>()) { | ||||
| @@ -47,6 +47,7 @@ class DynamicKernel { | |||||
| bool have_depends() const { return !depend_list_.empty(); } | bool have_depends() const { return !depend_list_.empty(); } | ||||
| virtual void Initialize(); | virtual void Initialize(); | ||||
| std::string GetKernelName() { return cnode_ptr_->fullname_with_scope(); } | std::string GetKernelName() { return cnode_ptr_->fullname_with_scope(); } | ||||
| int GetKernelType(); | |||||
| protected: | protected: | ||||
| void RebuildDependTensor(); | void RebuildDependTensor(); | ||||